簡體   English   中英

調用hasOwnProperty()時,IE9“無法從釋放的腳本中執行代碼”

[英]IE9 “Can't execute code from freed script” when calling hasOwnProperty()

這是場景:

我有一個容器頁面,可以將iFrame換入和換出以顯示不同的內容。 所有iFrame都來自同一域。 https已啟用。

  • 容器頁面上有一個名為Flow的對象,其功能為set / getParameter
  • 第一個iFrame s0-welcome創建一個對象,數據,並調用Flow.setParameter('data',data);
  • 然后,容器用第二個iFrame s1-transfer替換第一個iFrame。
  • s1-transfer調用Flow.getParameter('data')並將其存儲在本地變量s1data中

在IE9調試工具控制台中,如果鍵入s1data,它將顯示該對象的所有屬性。 但是,如果我調用s1data.hasOwnProperty('prop1'),則會收到“無法從釋放的腳本執行代碼”錯誤。 如果我調用Object.prototype.hasOwnProperty.call(s1data,“ prop1”),一切正常。

在我看來,可能有兩種可能性:

1)容器頁面保留了第一個iFrame的引用,但是當第一個iFrame被釋放時,它將丟失一些數據。 這似乎不太可能,因為我唯一無法訪問的是函數

2)有一個安全限制,即使兩個iFrame來自同一域,也不允許一個iFrame運行與另一個iFrame相關的代碼。

有什么想法嗎?

剛遇到類似的問題。 對我來說,只需將s1data.hasOwnProperty('prop1')更改為('prop' in s1data) ,錯誤就會消失。

暫無
暫無

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

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