0

これらのコード行の両方を使用して iFrame の URL を呼び出そうとしたプロジェクトがいくつかありました。IE9+ と FF では動作が異なります (IE7 と IE8 は最初の行で完全に動作します。IE7 と IE8 では 2 行目をテストしていません)。

これがなぜなのか誰か知っていますか?私はそれがIE Webkitか何かをしなければならないと想像しますか?確信はないけど。

// This calls the iFrame once, but if you call it again with this command, it throws
// a null object error
window.frames["el"].location 

//versus 

// This seems to work the same each time.
document.getElementById("el").src

どんな洞察もクールだろう...ありがとう!

4

1 に答える 1

1

最初の方法framesは、ウィンドウに直接アクセスし、ライブ ロケーション プロパティを読み取ります。1 つだけ制限があります。フレームの原点が異なる場合、失敗します。

2 番目のメソッドは、フレームの src属性を読み取ります。フレームが移動しても更新されません。したがって、このプロパティは信頼できません。

location別のオプションは、フレームのcontentWindowプロパティから読み取ることです。name最初の方法と同じ制限がありますが、フレームに属性をアタッチする必要はありません。

document.getElementById("el").contentWindow.location
于 2012-07-04T16:18:42.507 に答える