这是我的 iframe 的 aspx 页面
<asp:UpdatePanel ID="dynamicForm" runat="server" UpdateMode="Conditional">
<ContentTemplate>
<iframe id="iTargetLoader" name="iTargetLoader" width="200" height="50" onload="onLoadFn()"></iframe>
</ContentTemplate>
</asp:UpdatePanel>
这是我在javascript中的onloadfn函数,用于iframe的onload事件
function onLoadFn() {
//debugger;
document.getElementById("iTargetLoader").contentWindow.document.defaultView.frameElement.innerText;
var frame = document.getElementById("iTargetLoader");
var contentDoc = (frame.contentWindow || frame.contentDocument);
if (contentDoc != null && contentDoc.document.body != null) {
var serverResult = contentDoc.document.body.innerText;
var regSuccess = /success/i;
if (regSuccess.test(serverResult)) {
if (parseInt($('#ContentPlaceHolder1_hdn_qstnadd').val()) == 1) {
addQuestion();
$('#ContentPlaceHolder1_hdn_qstnadd').val(0);
}
//alert('success!');
//return "success!";
}
else {
if ($.trim(serverResult) == "") {
//alert("empty!");
}
else {
alert("failed!" + serverResult + "Please Contact Your Administrator!");
window.parent.window.open("", "_self");
window.parent.window.close();
}
//return "failure!";
}
}
else {
return "";
}
}
这里来自 servlet 的反馈被加载到 iframe 即“iTargetLoader”我试图在 iframe 加载后检查它的内容是否成功。它在 IE 中工作正常但是当我使用 firefox 或 google chrome在 onload 事件中,iframe 的加载未完成,因此内部 html 显示为 null。但在 IE 中,加载首先完成,innerhtml 显示反馈。我该如何解决?