[英]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”,但這沒有任何效果。
我看過這些類似的問題:
並嘗試了建議,他們沒有幫助。
Apple似乎必須意識到這個問題,因為它已於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();
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.