在不同域的 iframe 中注入脚本

问题描述 投票:0回答:2

我试图将脚本注入 iframe 元素中,尝试以这种方式实现, 子级和父级不属于同一域(我知道最新的浏览器可以防止 XSS) 有什么方法可以将脚本注入到按钮单击父元素的子元素中。 (类似于 Chrome 控制台中的运行脚本)

var myIframe = document.getElementById("myIframeId");
var script = myIframe.contentWindow.document.createElement("script");
script.type = "text/javascript";
script.src = "randomshit.js";
myIframe.contentWindow.document.body.appendChild(script);
javascript html iframe inject
2个回答
8
投票

不。 同源策略可以追溯到 Netscape 2.0。

除非你能破解/XSS其他网站的文件来注入JS,否则你会很难过。

现在,如果您确实需要与其他页面通信,并且您可以控制其他页面或可以将其设置为与您的服务器通信,则可以使用

window.postMessage
JSONP 甚至带有 CORS 的 Ajax(不过,后两者将更难传递动态内容)。但我相信事实并非如此。


0
投票

使用 chrome 扩展将其添加到清单中

{ "matches": ["<all_urls>"], "all_frames": true, "js": ["captcha.js"] }
并使用控制台你可以使用这个: `varfirstIframe = window.frames[0]; console.log(firstIframe);

//访问iframe的contentDocument var iframeDocument = firstIframe.document;

// 在 iframe 中使用 jQuery 选择 '.img-action-text' 元素 var elements = $(iframeDocument).find('.img-action-text');`

© www.soinside.com 2019 - 2024. All rights reserved.