我想更改在webkit開發人員工具/ firebug控制檯中執行的JavaScript的上下文,以執行其代碼,就像它從頁面上的iframe中運行一樣。有沒有辦法在javascript控制檯中將上下文更改爲iframe?
我知道我可以通過在單獨的頁面上打開iframe中的頁面來做到這一點,但我想在與父框架交互的位置運行代碼。
我想更改在webkit開發人員工具/ firebug控制檯中執行的JavaScript的上下文,以執行其代碼,就像它從頁面上的iframe中運行一樣。有沒有辦法在javascript控制檯中將上下文更改爲iframe?
我知道我可以通過在單獨的頁面上打開iframe中的頁面來做到這一點,但我想在與父框架交互的位置運行代碼。
Chrome 15允許您更改控制檯的範圍。在控制檯上,旁邊的清除控制檯按鈕的底部,有一個菜單,上面寫着<top frame>
,這將給可用幀列表:
Firefox有一個similar feature目前正在開發中:
:您也可以跨框架using the command line導航
var frame = document.getElementById("frame1").contentWindow;
cd(frame);
您可以使用window.frames[x]
功能執行的代碼。例如,
window.frames[0].runFunction()
如果FireBug是你選擇的武器,一個不錯的選擇。謝謝。 –
你會如何執行jQuery命令之類的函數之外的代碼?或者,如果您想在某個框架下獲取DOM元素的引用,那麼針對該元素執行代碼? – David
對於螢火蟲解決方案,請參閱this answer關於另一個SO問題。但是,不像丹尼斯的Chrome解決方案那樣可以跨域使用。
編輯:更新版本的螢火蟲他們可能有固定的跨域問題。
默認情況下腳本語句和命令的執行是在頂層窗口的上下文中完成的。如果您使用的是幀,請使用「cd()」控制檯命令。
cd() 不帶參數調用cd()會返回到頂層窗口。
cd(窗口) 允許您將命令行表達式評估從網頁的默認頂級窗口更改爲框架的窗口。
更多信息,here
似乎只與IE相關,但不適用於webkit .. – Cherniv
這正是我所期待的。 (它適用於Firefox) 謝謝。 – user2410595
cd(document.getElementsByTagName('iframe')[0]);
歡迎來到Stack Overflow!請考慮編輯您的帖子,以添加更多關於您的代碼的解釋以及爲什麼它可以解決問題。一個主要包含代碼的答案(即使它正在工作)通常不會幫助OP瞭解他們的問題。 – SuperBiasedMan
謝謝!對於firefox來說,這是一種奇怪的方式,但我想「cd(iframe)」是您在控制檯中輸入以切換上下文的內容。我給了你一個+1 b/c你爲我節省了大量的頭撞,但你應該真正拋光這個帖子並解釋它! –
你總是可以用'window.frames [x]'方式執行代碼。只需追加任何你想要的命令。 I.E. 'window.frames [0] .runFunction()' – Ktash
@Ktash,你可能想讓這個答案? – Muhd
我如何在IE中做同樣的事情?如果元素位於內部IFRAME中,我發現使用$在控制檯窗口中選擇一個元素非常困難。請幫忙。 – tarekahf