【问题标题】:Run javascript on a specific execution context (iframe)在特定的执行上下文(iframe)上运行 javascript
【发布时间】:2019-01-16 19:16:44
【问题描述】:

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

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

我遇到的问题似乎是执行上下文。此代码在我首先检查元素时起作用,或者如果手动将执行上下文表单 top 更改为所选的 (ext-gen65)。 .

什么是(或有)正确的方法来做到这一点?

编辑: 当我使用 document.getElementById('ext-gen65').contentWindow.document 时,我得到 Cannot readpropery 'document' of undefined 错误。

【问题讨论】:

  • 编辑了问题。
  • 可能是时间问题,如果您在 iframe 加载之前执行此操作?如果不是这样,那么检查 document.getElementById('ext-gen65').contentWindow 首先返回什么 - 你得到一个窗口实例,还是已经为 null/undefined?
  • 它确实返回了一个窗口实例。 WillhemVanderVeen 的回答解决了,谢谢。

标签: javascript google-chrome bookmarklet


【解决方案1】:

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

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

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

【讨论】:

  • 为你更新了
猜你喜欢
  • 2015-07-15
  • 2010-12-01
  • 1970-01-01
  • 1970-01-01
  • 2015-01-28
  • 1970-01-01
  • 2018-03-13
相关资源
最近更新 更多