1
我有一個包含幀回傳在window.onbeforeunload不fireing與Firefox
function attachToTheSaveWhenLeave(sender) {
sender.onbeforeunload = function (ev) {
sender.Save();
};
}
<frameset cols="25%,75%">
<frame id ="Frame1" src="LeftFrame.aspx" />
<frame id ="frmTest" src="FrameContent.aspx" />
</frameset>
在由框架(FrameContent.aspx)包含頁面的一個主要頁面,我需要知道,如果該頁面丟棄以火回傳和服務器必須保存用戶所做的更改
var isPostBack = false;
window.onload = function (ev) {
window.parent.attachToTheSaveWhenLeave(window);
}
function Save() {
if (!isPostBack)
$("input:submit")[0].click();
}
<form id="formFrame" runat="server" onsubmit="isPostBack=true;">
<div>
<asp:CheckBox ID="CheckBox1" runat="server" AutoPostBack="True" />
<asp:Button ID="Button1" runat="server" Text="Button" OnClick="Button1_Click" />
</div>
</form>
在IE瀏覽器的服務器接收回傳,但與Firefox我必須使用的setTimeout這個工作
function Save() {
if (!isPostBack)
setTimeout(function() {
$("input:submit")[0].click();
},1);
}
我不喜歡我找到的解決方案,我不明白Firefox的行爲。 任何人都可以向我解釋爲什麼Firefox這樣做,如果有另一種方式來做到這一點?