如何在新打开的窗口中运行Javascript?

时间:2015-11-11 04:29:06

标签: javascript

假设我有以下代码。

window.open(url, windowName, "height=500,width=500") 
// This will open a new window with the url.

myFunction();
// Run this function on the newly opened window instead of
// the old one because I need to find a link on the new page.

现在,myFunction()被困在旧窗口上。

更新:新网址是另一个网域。

2 个答案:

答案 0 :(得分:-1)

myFunction()放入新窗口的脚本中。

然后设置该窗口的onLoad事件来运行它。

您可以通过以下方式从新窗口获取对来电者窗口文档的引用:

window.opener.document

你有足够的链接可以做任何事情。

更新

您的新窗口应来自​​同一个域。否则它将与浏览器的same origin policy对齐。

请看这个问题:

Ways to circumvent the same-origin policy

答案 1 :(得分:-2)

您有几种选择:

  1. 编辑url中存储的网页的源代码,以包含您在网页打开时要运行的自定义代码。如果您只想在弹出窗口打开网页时运行此代码,则可以将网址命名为“webpage.html?run_custom_code”,然后在webpage.html中将javascript仅在window.location.href.indexOf('run_custom_code') > 0

  2. 您可以打开一个网页,其唯一目的是运行javascript:window.open('javascript:alert()');,但根据您的编辑,这似乎对您没用。

  3. 使用其他语言,例如PHP,您可以使用$html = file_get_contents($url);

  4. 等内容获取其他网页的内容
  5. 对另一个网址执行ajax request(如果它位于同一个域中)并抓取结果以找到您的链接。