簡體   English   中英

IE9 iframe窗口刪除后,將無法執行釋放腳本中的代碼?

[英]IE9 iframe window removed after will can't execute code from a freed script?

在我的應用程序中,我在燈箱中創建了一個iframe,當我打開燈箱后,它將調用父窗口函數並關閉燈箱,在父窗口函數中將創建並更新一些DOM,然后當我返回父窗口時我嘗試訪問這些DOM,它將引發異常“ script5011:無法從釋放的腳本中執行代碼”。

我像這樣window.parent.myFunc(arg1,arg2 ....)在iframe上調用父窗口函數,它將出現異常,我認為這是IE 9的新功能已更改,因為我在IE 6中進行了測試7、8和其他瀏覽器都可以正常工作,我還沒有找到IE 9的有效解決方案,希望可以從這里得到答案。 有任何想法嗎?

造成此問題的原因是,隨后更改框架的URL時,IE9刪除了對父窗口對象的引用,並且這樣做是為了提高安全性。 解決方案是在父窗口中設置功能,這些功能可以修改(設置和獲取)父窗口數據對象。 將對象序列化為字符串后,可以將對象傳遞給父窗口的函數。 調用父框架函數的最佳方法是在子框架中調用以下內容。

window.parent.eval("resetDataObject()");

並在父框架中編寫如下內容:

var myDataObject = [];
function resetDataObject()
{
    myDataObject = [];
}

檢查此帖子http://www.tejzpr.com/2014/10/codefix-script5011-cant-execute-code.html

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM