码迷,mamicode.com
首页 > Web开发 > 详细

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

时间:2016-01-21 18:24:56      阅读:119      评论:0      收藏:0      [点我收藏+]

标签:

  出现此问题可能是因为在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是否准备完毕

 

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

标签:

原文地址:http://www.cnblogs.com/karlsunstrider/p/5148503.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!