2012-01-18 5 views
1

Firefoxの拡張機能のオーバーレイ(iframe内のiframe内のiframe内の...)から深さの任意の数のネストされたiframeにアクセスする必要があります。オーバーレイはiframeからイベントを受け取りますが、DOMアクセサメソッドはnilを返します。拡張機能からネストされたiframeにアクセスする

function resizeIframe(evt){ 
var iframeHeight = evt.target.getAttribute("height"); 
var frame_id = evt.target.getAttribute("frame_id"); 
var ifr = content.document.getElementById('ifrm'+frame_id);//returns nil 
ifr.style.height = iframeHeight+'px'; 
} 

私はこれを行うには堅牢な方法を探していますが、私はこの時点で動作するものに満足しています。ありがとう!

+0

すでに 'evt.target'がある場合、同じフレームにIDでアクセスしようとしていますか? –

+0

iframeのheight属性にアクセスする必要があります。これはイベントの上のiframeにあります。 – smcgregor

+0

あなたはここで私を失ったと思います。ですから、正確な構造はどのようなものですか?あなたのケースでは 'event.target'は何ですか? –

答えて

1

使用window.frameElement property

var ifr = evt.target.ownerDocument.defaultView.frameElement; 
+0

これは素晴らしい、ありがとう!注:これはFirefox固有のものだと思いますが、他のブラウザにも同様の方法があります。 – smcgregor

+0

@smcgregor:いいえ、 'frameElement'プロパティはすべてのブラウザでサポートされています。 –

+0

よろしくお願いします。他のブラウザでこれを試す前にもう少し時間がかかりますが、問題がある場合は別のコメントを投稿します。 – smcgregor

0

Firefox 34から以降、私たちは、ドキュメント内の特定のiframeで開発者向けツールを指すことができます。

ネストされたiframeにアクセスするためにMozillaが提供する拡張機能の詳細については、Mozilla Developer Guideを参照してください。

関連する問題