在特定执行上下文(iframe)上运行javascript

时间:2018-08-09 10:52:15

标签: javascript bookmarklet

我正在尝试编写JavaScript代码(稍后将其放在小书签中),以自动填充网页上的某些文本框。

document.getElementById("textboxID").value = "Some Text"

我遇到的问题似乎是执行上下文。如果我先检查元素,或者将执行上下文形式 top 手动更改为选定的元素(ext-gen65),则此代码仅适用于 Execution context list (Chrome)

什么是(或在那里)执行此操作的正确方法?

编辑: 当我使用document.getElementById('ext-gen65').contentWindow.document时,我得到无法读取未定义的正确“文档” 错误。

1 个答案:

答案 0 :(得分:2)

问题在于,该ID位于iframe的文档内部,每个iframe都有其自己的元素所在的window.document属性。 您可以通过以下方式获取文档:

let Iframe =  document.getElementById('yourIframe').contentWindow.document

let value = Iframe.getElementById("textboxID").value = "Some Text"