原题已结贴,为了感谢wsj兄弟对已结贴问题的关注,特赠200.

yonghengdizhen 2003-08-08 07:29:27
原贴标题和链接:
√如何拦截表单的脚本submit动作======================>用于htc中
http://expert.csdn.net/Expert/TopicView1.asp?id=2077546

解决方法:
在htc初始化时,替换form的action到一个函数,并记住旧action
<script>
function doit(ofrm)
{
ofrm = form1;//You should find someway out here to got FORM instance
ofrm.fireEvent("onsubmit");
if(doYourHTCcheck(ofrm))
event.returnValue = false;
else
{
ofrm.action = oldAction
ofrm.submit();
}
}

</script>
<form id=form1 action="javascript:doit(this)" onsubmit="alert(1);status=1;return true;">
<input></input>
</form>

<script>
form1.submit();
//form1.fireEvent("onsubmit");
</script>
...全文
53 12 打赏 收藏 转发到动态 举报
AI 作业
写回复
用AI写文章
12 条回复
切换为时间正序
请发表友善的回复…
发表回复
kingdomzhf 2003-08-09
  • 打赏
  • 举报
回复
wsj
good
liuruhong 2003-08-09
  • 打赏
  • 举报
回复
基于这些讨论,老兄可以写一个公用的htc,然后贴出代码,按照我的感觉,代码工作量不是很大,关键的是如何去设计而已
yonghengdizhen 2003-08-09
  • 打赏
  • 举报
回复
你说的有道理..

我的一个同事的习惯就是这个样子..看来捕获form的action变化还是很有必要
yonghengdizhen 2003-08-09
  • 打赏
  • 举报
回复
你说的有道理..

我的一个同事的习惯就是这个样子..看来捕获form的action变化还是很有必要
liuruhong 2003-08-09
  • 打赏
  • 举报
回复
偶说的form.attachEvent("onpropertychange",myHandle),不是对于document

我提到的只是一个补充,在htc中的oncontentready事件中编写attachEvent("onpropertychange",myHandle),在事件链中,只要action通过程序改变了,myHandle就可以进行处理,在客户端更多可能的情况是这样的
form1.action=newAction;
form1.submit();
我的意见就是在action改变的情况下myHandle就可以进行处理,然后才真正的执行submit,这个时候的action已经被我们修改成doit,真正的action也被我们记录下来
yonghengdizhen 2003-08-09
  • 打赏
  • 举报
回复
to liuruhong(蓝色街灯)
如果修改过action,并不影响htc的attach,因为htc只是保存现场并恢复现场,
当然如果页面某些地方需要脚本检查form的action,那就可能不行了,因为action在form attach到htc之后就已经发生变化,不过这种可能性非常之小,姑且算是一个问题吧,如果附加onpropertychange事件,对于页面性能的影响可能太大了.
这种方式还有一个问题,那就是它不能附加到事件链的最前面,也就是说处理提交的脚本完成之后才执行action内的处理.
不过能找到目前的方法已经很不错了.
liuruhong 2003-08-09
  • 打赏
  • 举报
回复
偶突然想到问题还是可能出现的,如果用户也是通过编程修改action属性呢?

这个时候进行的submit会不会出现问题,就是说你进行了doit(form)之后,如果用户通过编程修改了action,这个时候你纪录的action就没有任何意义了,我想这个时候我们是不是可以考虑acttachEvent("onpropertychange",myHandler)来记录action的改动情况呢?
zzmpower 2003-08-09
  • 打赏
  • 举报
回复
很好,
liuruhong 2003-08-09
  • 打赏
  • 举报
回复
思路确实不错,偶没有想过action可以是一个js函数
wsj 2003-08-09
  • 打赏
  • 举报
回复
其实,这就是一个标准的重载了。
可惜HTML太凌乱了。

onPropertyChange for action是个有宜的补充。
我们只有尽量模拟了。

当然话说回来,虽然每个程序员都追求完美的通用
但世上难有绝对通用的程序。

所以:定义明确,实用,高效。是个好的标准。

PS:
--> 它不能附加到事件链的最前面,也就是说处理提交的脚本完成之后才执行action内的处理
可以调整fireEvent在doYourHTCcheck之后。

nba23 2003-08-08
  • 打赏
  • 举报
回复
学习中...
fason 2003-08-08
  • 打赏
  • 举报
回复
好办法!

87,997

社区成员

发帖
与我相关
我的任务
社区描述
Web 开发 JavaScript
社区管理员
  • JavaScript
  • 无·法
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧