第二个form.submit()在XP上的Safari中不起作用,适用于其他浏览器

Pau*_*lin 5 javascript safari

我有一些代码,当你点击我的页面上的东西时,使用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();
};
Run Code Online (Sandbox Code Playgroud)

该功能可通过以下代码访问:

<a href="#" onclick="accessEmployeeViewClicked();return false;">Access employee's view &gt;&gt;</a>
Run Code Online (Sandbox Code Playgroud)

我在Safari内置调试器中放置了一个断点,第二次单击它时,它肯定会进入accessEmployeeViewClicked()函数,但form.submit();什么都不做.根据评论中的建议,我将form.target更改为"_blank",但这没有任何效果.

我看过这些类似的问题:

并尝试了建议,他们没有帮助.

Pau*_*lin 2

看来苹果一定意识到了这个问题,因为它是在 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();
Run Code Online (Sandbox Code Playgroud)