对特定 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 之间拖放元素