2010年12月21日 星期二

Internet Explorer 無法開啟網際網路網站

最近有頁程式,壓下一個按鈕後,會執行一段 JavaScript 去作 window.open( ) 的動作。但不知為何,就有一位 user 反應他會出現「Internet Explorer 無法開啟網際網路網站」的錯誤訊息。


在 Google 找了好幾篇文章,建議把 IE 的 plug-in 套件移除或關閉,甚至蠻多人說是安裝了 skype 的 plug-in,但自己試了,還是沒用。最後在一篇文章「IE無法開啟網際網路網站,操作已中止」,有提到:如果出現這個畫面,代表在IE在DOM尚未載入完全的時候,就嘗試存取DOM而產生的訊息。所以,我猜想可能是我執行 window.open( ) 時,頁面上的 DOM 還沒完全載入所造成。既然如此,為了確保頁面上的 DOM 能完全載入,我想起透過 jQuery 的

$(document).ready(function(){  //Do Some ... });

透過這種寫法,可以確保所有 DOM 都載入後,才開始執行裡面的程式。

所以我將原先 window.open( ) 的動作,移到  $(document).ready(function(){  //Do Some ... }); 裡試試,果然就沒在出現原先的錯誤訊息了。

private void btnPrintSignNew_Click(object sender, System.EventArgs e)
{  
  string scriptString=string.Empty;
  scriptString = string.Format(@"
  <script language=JavaScript>
  <!-- begin 
  $(function(){{
  window.open('xxx');
  }});
  //end -->
  </script> 
"));

  this.RegisterStartupScript("MsgDownLoad",scriptString);
}


參考:
01:IE無法開啟網際網路網站,操作已中止

2 則留言:

  1. 謝謝您的這篇資訊,它協助了我找到問題了。

    回覆刪除