Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/html/76.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
将javascript注入iframe的最佳方法_Javascript_Html_Iframe_Web - Fatal编程技术网

将javascript注入iframe的最佳方法

将javascript注入iframe的最佳方法,javascript,html,iframe,web,Javascript,Html,Iframe,Web,我试图将javascript注入iframe,但没有任何效果。我已经花了好几天时间讨论这个问题,如果有人能给我一些提示,那就太好了 主题示例: example.html: <html> <head> </head> <body> <iframe src="http://example.com/test.html" id="myFrame"> </iframe> </body> </html> &l

我试图将javascript注入iframe,但没有任何效果。我已经花了好几天时间讨论这个问题,如果有人能给我一些提示,那就太好了

主题示例:

example.html

<html>
<head>

</head>
<body>
<iframe src="http://example.com/test.html" id="myFrame">
</iframe>
</body>
</html>
<html>
<head>

</head>
<body background="./bg.jpg">
<p >Text </p>
<p >(<i>Something</i>)<br><img src="./img1.gif" align="left">Text</p>´
</body>
</html>
<html>
<head>
<script type="text/javascript"> src="myscript.js</script>
</head>
<body background="./bg.jpg">
<p >Text </p>
<p >(<i>Something</i>)<br><img src="./img1.gif" align="left">Text</p>´
</body>
</html>
<html>
<head>

<script type="text/javascript">
var rawframe = document.getElementById('myFrame');
var doc = rawframe.contentDocument;
if (!doc && rawframe.contentWindow) {
    doc = rawframe.contentWindow.document;
}
var script = doc.createElement('script');
script.type = "text/javascript";
script.src = "myscript.js";
document.body.appendChild(script);
</script>

</head>
<body>
<iframe src="http://example.com/test.html" id="myFrame">
</iframe>
</body>
</html>

来自
test.html
的所需输出:

<html>
<head>

</head>
<body>
<iframe src="http://example.com/test.html" id="myFrame">
</iframe>
</body>
</html>
<html>
<head>

</head>
<body background="./bg.jpg">
<p >Text </p>
<p >(<i>Something</i>)<br><img src="./img1.gif" align="left">Text</p>´
</body>
</html>
<html>
<head>
<script type="text/javascript"> src="myscript.js</script>
</head>
<body background="./bg.jpg">
<p >Text </p>
<p >(<i>Something</i>)<br><img src="./img1.gif" align="left">Text</p>´
</body>
</html>
<html>
<head>

<script type="text/javascript">
var rawframe = document.getElementById('myFrame');
var doc = rawframe.contentDocument;
if (!doc && rawframe.contentWindow) {
    doc = rawframe.contentWindow.document;
}
var script = doc.createElement('script');
script.type = "text/javascript";
script.src = "myscript.js";
document.body.appendChild(script);
</script>

</head>
<body>
<iframe src="http://example.com/test.html" id="myFrame">
</iframe>
</body>
</html>

谢谢大家的帮助。

不幸的是,我认为这是不可能的。我知道我以前尝试过类似的方法,但由于安全原因,浏览器阻止了它。

您将脚本附加到父页面的文档,而不是框架页面。

我不确定是否可以实现,但我看到的一个问题是时间。
您应该在加载iframe内容之前运行javascript代码,对吗?

如果您指定的域不是您自己的域,则同源策略会阻止您访问iframe内容。不,我没有访问该网站。然后您会被设计锁定。解决方法是将请求代理到url(包含您试图显示的内容)并从您的域中输出。现在iframe将来自您的域。但是,这不是一个好的做法,更不用说您可能会遇到其他安全问题。我认为这是原因,为什么不起作用。但我不确定。