2016-05-17 16 views
-1

我有一個javascript調試代碼,我需要不時在特定的網站上運行。使用特定iframe的javascript書籤

該網站有幾個iframe。

當我使用Chrome的調試控制檯時,我可以選擇運行代碼的iFrame。

我使用代碼javascript:my_debug_code()創建了一個書籤 - 但是如何告訴它在我需要的iFrame上運行?

編輯

這不是Invoking JavaScript code in an iframe from the parent page重複的建議。

因爲我沒有試圖從頁面本身運行代碼。

我的問題是不同的 - 我想從書籤運行代碼。

回答

我不能發佈一個新的答案,因爲問題被標記被複制。

但從@Gothdo答案拍攝,顯然都花了,我是添加到我的書籤:

javascript:window.frames[0].my_debug_code() 
+0

使用'frameName.contentWindow.my_debug_code()'。簡而言之,由於安全性,它不可能**。 –

回答

1

爲此,您可以提供的IFRAME具有相同起源的主要窗口。只需創建一個新腳本並將其附加到該iframe的<head>元素。

const code = "console.log('hello world from iframe', location.href)" 
    ,iframeName = "YOUR-IFRAME-NAME" 

const script = document.createElement("script") 
window.frames[iframeName].document.head.appendChild(script) 
script.src = "data:text/javascript;base64," + btoa(code) 
+0

我從這個答案找到了正確的答案。我不需要整個腳本。只是windows.frames [num]爲我做了詭計。 –