1

我有多框架應用程序,其中每個窗體打開在分離的框架,並可以從父窗口使用一些JS API。 API可以拋出一個異常(錯誤),但我無法在iframe中捕獲它。它僅在IE8中轉載。我在IE8/IE9和Chrome中檢查過它。例如爲:
的test.html無法捕獲從iframe父窗口中發生的錯誤

<html> 
    <head> 
    <script language="JavaScript" type="text/javascript"> 
     var g_fn = {}; 
     function onLoad() { 
     g_fn.thrown_error = function() { 
      throw new Error("Main window: error"); 
      return 1; 
     } 
     window.g_fn = g_fn; 
     } 

     function window_do() { 
     try { 
      g_fn.thrown_error(); 
     } catch (err) { 
      alert("Error catched!"); 
     } 
     } 
    </script> 
    </head> 
    <body onload="onLoad();"> 
    <input type="button" value="do smth in window" onclick="window_do();"/> 
    <iframe src="/iframe.html" /> 
    </body> 
</html> 

Iframe.html的

<html> 
    <head> 
    <script language="JavaScript" type="text/javascript"> 
     var g_fn; 
     function onLoad() { 
     g_fn = window.parent.g_fn; 
     } 

     function iframe_do() { 
     try { 
      g_fn.thrown_error(); 
     } catch (err) { 
      alert("Error catched!"); 
     } 
     } 

    </script> 
    </head> 
    <body onload="onLoad();"> 
    <input type="button" value="do smth in iframe" onclick="iframe_do();"/> 
    </body> 
</html> 

是,一個IE瀏覽器的bug?任何解決方法?

回答

0

試試這個:

g_fn = window.frameElement.g_fn; 

還是這個,如果有iframe的內線iframe S:

g_fn = top.window.g_fn; 
+0

謝謝!這很有幫助。 – qshurick