これをシンプルに保つために最善を尽くします。次のコードは IE10 で正常に動作します。
if (!document.getElementById(frames[i][j].toString()).contentWindow.MyFunc()) {
alert("Failed");
return false;
}
ただし、IE8 では、MyFunc() で「オブジェクトがこのプロパティまたはメソッドをサポートしていない」ため失敗しますが、contentWindow は見つかります。
役立つ可能性のある情報:
「frames」は、iframe オブジェクトの 2D 配列です。
このコードは親に存在します。
MyFunc() は、子 iframe で定義されています。
基本的に、私の質問は次のように要約されます。
document.getElementById(frames[i][j].toString()).contentWindow.*whatgoeshere?*
この投稿を見ましたが、あまり役に立ちませんでした。
これは、iframe が不明な場合 (例:この投稿) ではありません。これは、ドキュメントの準備ができてからかなり後にコードが起動するためです。エラーは異なりますが (アクセスが拒否されました)、この記事
で見つけたようなもっと複雑なことをする必要があるかどうか疑問に思っています。