无法打开internet站点 已中止操作!

  出现此问题可能是因为在IE下,在加载文档的过程中,整个HTML文档的DOM结构尚未生成完整,而此时正在执行的JS就已创建出新的DOM结点了,致使DOM树的结构发生紊乱。我的问题出现在后台代码部分。

Jquery代码:
 1 function UpdateItem(urlStr) {
 2 var url = "url:" + urlStr;
 3     OpenIframe("修改", "300", "250", url);
 4 }
 5 
 6 function OpenIframe(sTitle, sWidth, sHeight, sContent) {
 7     if (sWidth == "") sWidth = 'auto';
 8     if (sHeight == "") sHeight = 'auto';
 9     $.dialog({
10         id: "iframe1",
11         lock: true,
12         title: sTitle,
13         width: sWidth,
14         height: sHeight,
15         content: sContent
16     });
17 }

C#代码:

1 string jsStr = "<script>UpdateItem('TaxGroupTaxSettingItemPage.aspx?RecordID=" + OpID + "');</script>";
2 Page.ClientScript.RegisterStartupScript(typeof(Page), Guid.NewGuid().ToString(), jsStr);

由于OpenIframe方法改变了DOM结构所以出现了此问题,解决方法是调用JavaScript时加上defer属性,改变后如下:

1 string jsStr = "<script defer='defer'>CreateItem('TaxGroupTaxSettingItemPage.aspx?RecordID=" + OpID + "');</script>";
2 Page.ClientScript.RegisterStartupScript(typeof(Page), Guid.NewGuid().ToString(), jsStr); 
其他方法(未验证):
1.加入setTimeout来解决。即在调用改变DOM的操作时先判断document.readyState=="complete" ?

   若为否,则setTimeout设置为若干秒之后进行该操作。 

2.使用doScroll 进行判断DOM是否准备完毕

 

posted @ 2016-01-21 15:41  KarlSunstrider  阅读(526)  评论(0)    收藏  举报