1
这里是我的iframe aspx页面onload事件
<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 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 "";
}
}
这里onloadfn功能从一个servlet的反馈加载到iframe,即“iTargetLoader”我试图检查加载后的iframe的内容是否成功或不。它在IE中工作正常,但当我使用Firefox或谷歌浏览器onload事件加载的iframe没有完成,因此我nner html显示为空。但在IE中,加载首先完成,innerhtml显示反馈。我该如何解决它?
感谢的解释,但问题是contentDoc.document是空的,即除了IE之外,servlet反馈并没有加载到iframe中的contentDoc这个时候。 –
所以你说'frame.contentWindow'和'frame.contentDocument'都是空的?如果是这种情况,则此代码之外还有另一个问题。 –
是的,在加载事件中有问题。 IE和Google Chrome浏览器似乎对加载事件的行为不同。正如我前面所说的,IE在文档准备好之前加载了iframe,但最终加载了iframe。我怎样才能让谷歌Chrome浏览器像加载事件的IE一样行事? –