对特定 iframe 使用 javascript 书签 [重复]

Posted

技术标签:

【中文标题】对特定 iframe 使用 javascript 书签 [重复]【英文标题】:Use javascript bookmark for specific iframe [duplicate] 【发布时间】:2016-09-13 17:51:02 【问题描述】:

我有一个 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()

【问题讨论】:

使用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)

【讨论】:

我从这个答案中找到了正确的答案。我不需要整个脚本。只是 windows.frames[num] 对我有用。

以上是关于对特定 iframe 使用 javascript 书签 [重复]的主要内容,如果未能解决你的问题,请参考以下文章

JavaScript/jQuery 在两个 iframe 之间拖放元素

如何从 WKWebView 打印特定的 iFrame

仅在特定域上加载 iframe

iOS 浏览器 - 使用 JavaScript 更改 css 或内容时 iFrame 跳转到顶部

如果文本包含特定单词,则在 iframe 中隐藏 css

Youtube iframe API 无法发布消息