Iframeで実行されるFacebookキャンバスアプリケーションがあります。 firebugでページをデバッグしたいのですが、アプリを実行しているiframeにスコープするjavascriptを取得できません。
iframe:
<iframe frameborder="0" src="[app_url_removed]" name="iframe_canvas" id="iframe_canvas" class="canvas_iframe_util" style="height: 905px;"></iframe>
私は次のすべてを試しましたが、どれも機能しません:
cd(iframe_canvas)
cd(window.iframe_canvas)
cd(iframe_canvas.window)
cd($('iframe_canvas'))
Firefox 3.6.13があり、firebug 1.7a11とfirebug 1.6.2を試しました
また、このリンクからブックマークレットやその他のさまざまなものを試してみました iFrame内のFirebugおよびjQueryセレクター 使用できません。
次のコマンドのいずれかを使用します。
cd(frames[0])
cd(frames["iframe_canvas"])
そして
cd(top)
メインウィンドウに戻ります。
それでも、バグにより、これは現在クロスドメインiframeでは機能しません( http://code.google.com/p/fbug/issues/detail?id=389 )。両方の場合に環境をテストできる2つのテストケースがあります。
別の可能性のある驚きのソース:一度に複数のコマンドを実行すると、cdコマンドは直接続くコマンドに影響を与えないようです:
>>> cd(frames[0]); location.href;
["Current window:", Window cdFrame.html]
"https://getfirebug.com/tests/content/commandLine/cd.html"
>>> location.href
"https://getfirebug.com/tests/content/commandLine/cdFrame.html"
Chrome=にドロップダウンがあります 底 javascriptコンソールのtop *を使用すると、別のフレームに切り替えてjavascriptを実行できます。クロスドメインでも機能します。
* 14/10/10更新:最新バージョンのChromeでは、このドロップダウンはコンソールの下部から上部に移動しました。
要素には次のようにアクセスできます。window.frames[x].document.getElementById("elementID");
x
はフレームインデックスで、elementID
は指定している要素です。
この質問が尋ねられたとき、ウィキは更新されていなかったと思いますが、今ではニースの例があります: https://getfirebug.com/wiki/index.php/Cd
基本的に、iframe要素からウィンドウを取得するために不足していたのは「.contentWindow」でした