【发布时间】:2013-10-29 20:16:45
【问题描述】:
这是我的 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 显示为空。但在 IE 中,加载首先完成,innerhtml 显示反馈。我该如何解决?
【问题讨论】:
标签: javascript jquery asp.net iframe