第二个form.submit()在XP上的Safari中不起作用,在其他浏览器上工作
Second form.submit() doesn't work in Safari on XP, works on other browsers
我有一些代码,当你点击我页面上的某些内容时,它使用 form.submit() 打开另一个窗口。 它在IE 6-8,Firefox和Chrome以及Mac上的Safari中运行良好。 但是在Windows XP上的Safari中,单击该内容后,其他执行form.submit()的链接都不起作用。 即使是同样的东西也做不到。 下面是该按钮的一些回调代码:
accessEmployeeViewClicked = function() {
var form=document.Form<xsl:value-of select="//PAGE/@NAME" />;
form.action = 'ServletName';
form.target = "otherTarget";
form.submit();
};
该函数由以下代码访问:
<a href="#" onclick="accessEmployeeViewClicked();return false;">Access employee's view >></a>
我在 Safari 内置调试器中放置了一个断点,第二次单击它时,它肯定会进入 accessEmployeeViewClicked()
函数,但form.submit();
什么也不做。 根据评论中的建议,我将form.target更改为"_blank",但这没有任何效果。
我看过这些类似的问题:
Firefox 处理 xxx.submit(),Safari 不...能做什么?
document.form.submit(); 不会在 safari 中提交
并尝试了这些建议,但它们没有帮助。
看来苹果必须意识到这个问题,因为它是在2009年记录的,据说进入了他们的"雷达"错误跟踪系统,但他们一定不在乎:https://bugs.webkit.org/show_bug.cgi?id=28633
我实现了该错误报告中的解决方法,它起作用了:
form.action = 'ServletName';
// Work around for Safari bug suggested in https://bugs.webkit.org/show_bug.cgi?id=28633
if ($.browser.safari)
{
form.action += '?t=' + new Date().getTime();
}
form.target = "otherTarget";
form.submit();
这是一个更简单的解决方案 - 适用于所有浏览器,并在日志文件中为您提供时间戳的附加值
<form onsubmit="this.ts.value=new Date().getTime()">
.
.
.
<input type="hidden" name="ts" value="timestamp" />
</form>
如果你有函数执行提交,则不会触发onsubmit,所以
添加form.target = "otherTarget";
form.ts.value=new Date().getTime()
form.submit();
相关文章:
- Array.length似乎不起作用;console.log则显示其他情况
- Javascript的某些部分在Chrome中不起作用,但在其他浏览器中可以完美工作
- jQuery Mobile到其他页面的锚链接不起作用
- 带有Safari的Javascript;不起作用——所有其他浏览器都起作用
- 使用 jquery 在我的网站中加载其他网页不起作用
- 将JSON对象转换为敲除observable在IE8中不起作用,但在所有其他浏览器中都起作用
- jQuery.remove()不起作用,而其他内置函数则起作用
- 引导程序3在IE8中不起作用(已检查其他答案)
- 是jQuery 1.3.2导致此操作不起作用,还是其他原因
- DomElement.click() 事件在 chrome 中不起作用,但其他事件可以工作
- 为什么除了数据库(WebSQL)之外,其他数据库名称在android中不起作用
- Pjax.页面上的其他JS脚本不会;不起作用
- 主菜单JS在IE和Firefox中不起作用(其他菜单起作用)
- 滑动在IE中不起作用.但它在所有其他浏览器中都能正常工作
- 滑块图像在Internet Explorer中不起作用,但在其他浏览器中有效
- 数据表删除按钮在其他页面上不起作用,除了第一个
- 虽然循环不起作用(在其他类似问题中找不到答案)
- jQuery事件在Mozilla上不起作用,并且适用于其他浏览器
- JQuery FancyBox、Prepend函数和<a href>标签在IE7和IE8中不起作用.(其他浏
- 简单的 AJax 调用不起作用 - 其他页面已加载