如何将网页加载到新窗口并将JavaScript代码注入其中?

时间:2009-07-21 19:49:38

标签: javascript code-injection

使用JavaScript,我如何打开一个新窗口(在此过程中加载,例如http://www.google.com)并将此代码注入/插入其正文中:

<script type="text/javascript">alert(document.title);</script>

我知道如何打开一个新窗口,但我不知道如何将脚本添加到新窗口并运行它:

var ww = window.open('http://www.google.com');

4 个答案:

答案 0 :(得分:11)

即可。这会违反大多数(所有?)浏览器实施的same origin policy以保护其用户。

想象一下,如果这是可能的:您可以说服用户来到您的网站,打开一个新的窗口,比如他们的银行网站加载到其中,并注入代码来窃取他们的凭据。然后继续窃取他们的钱,身份等...

不好,是吗?所以非常,非常高兴这是不可能的。


另见:Same-origin policy for DOM access in the Browser Security Handbook

答案 1 :(得分:3)

这适用于firebug控制台:

>>> var x = window.open("");
Window opened
>>> x
Window about:blank
>>> x.document
Document about:blank
>>> x.document.write("<script type='text/javascript'>alert('h1');</script>");
Alert popped up

答案 2 :(得分:0)

您的ww var是对新窗口对象的引用。所以ww.window.title将是你打开的窗口的标题。

如果您想操纵新窗口,则应通过ww var。

进行操作

答案 3 :(得分:0)

最好的方法是让您的网站(您的脚本来自的网站)充当代理并为您下载相关网址。因此,您可以在服务器上修改响应,也可以在客户端本地修改响应。