iframe内で、ユーザーが多くの異なるページに移動することを期待しているページがありiframe
ます。それらはすべて、親ページと同じドメインにあります。
トップレベルのウィンドウに永続オブジェクトがあります。それを呼び出しましょうappData
。そしてiframeでは私はしばしば次のような行を持っています
parent.appData[someProperty] = {a : 1, b : 2};
解放されたスクリプトエラーの一般的な問題を認識しており、元のドキュメントがアンロードされている可能性があるため、そのようなオブジェクトで任意のメソッドを呼び出そうとすべきではないことを理解していますが、確かhasOwnProperty
にそのようなメソッドであってはなりません。後続の子ページで、次のように言うことができます。
if (parent.appData[someProperty].hasOwnProperty('a'))
私はいけませんか?そして、これが奇妙なことです。MSIE10を除いて、テストしたすべてのブラウザーで期待どおりに機能します。hasOwnProperty()を呼び出すと、IE9の「解放されたスクリプトからコードを実行できません」に対する最近の回答が表示されました。in
私の場合は問題ありませんが、ずっと「不正行為」をしているのか、それともMSIE10のバグなのか疑問に思っています。
jsFiddleはiframeを処理しないため、例を使用してこれを示す最善の方法がわかりません。申し訳ありません。