【发布时间】:2012-11-12 05:22:02
【问题描述】:
我正在尝试将 javascript 注入 iframe,但没有任何效果。我已经在这个问题上花了几天时间,如果有人能给我一些提示,那就太好了。
主题示例:
example.html:
<html>
<head>
</head>
<body>
<iframe src="http://example.com/test.html" id="myFrame">
</iframe>
</body>
</html>
test.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>
test.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>
这个我试过了,还是不行:
example.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 内容。
-
不,我无法访问该网站。
-
那么你就被锁定了 - 设计使然。
-
解决它的一种方法是将请求代理到 url(包含您尝试显示的内容)并从您的域输出。现在 iframe 将来自您的域。但是,这不是一个好的做法,更不用说您可能会遇到其他安全问题。
标签: javascript html iframe web