以编程方式单击另一个网页中的输入按钮?

时间:2011-07-13 20:55:44

标签: javascript html onclick

我知道有几个类似的问题,但我没有看到我的具体需求的答案:有没有办法点击单独启动的网页中的按钮?例如,我通过以下方式启动另一个网页:

  • <a href="x" target="y">
  • window.open()

然后我可以通过编程方式单击该已启动网页中的输入按钮吗?

5 个答案:

答案 0 :(得分:2)

除非页面位于您自己的控制之下或驻留在同一个域上,否则不可能。这将是跨站点脚本,所有浏览器都有安全沙箱,以防止发生这样的事情。为什么要尝试以编程方式按下您也以编程方式打开的页面上的按钮?

答案 1 :(得分:2)

是。当你执行window.open时,它会返回一个window对象。 Var win = window.open(); win.fnSubmit();假设fnSubmit是另一个页面上的函数,它将执行.clicking。和两个pqges在同一个域。

答案 2 :(得分:2)

这是一些黑客注入攻击所使用的技术。基本上你可以将javascript注入到可以将自身附加到DOM的querystring中,更改图像或swf文件源,或者只是在页面加载时运行; example hereexample here

或者,如果您已经知道其他页面的结构,则可以直接定位方法或对象。

但是因为这些不是很好的事情,我认为你有充分的理由说明为什么你不能触摸接收页面上的代码但是想调整它的行为?

答案 3 :(得分:0)

您可以点击您可以选择的任何元素。

您只能选择具有安全保护功能的窗口中的元素。

您拥有自己的窗口权限,以及同一域内的窗口权限。安全

要访问该元素,您需要从window.open

返回的窗口对象
var newWin = window.open(siteYouHaveAccessTo);
newWin.document.getElementById('foo').click();

如果您尝试点击Search上的www.google.com按钮,那就是SOL。

答案 4 :(得分:0)

调查说......也许吧。如果你已完成作业,你可能能够在同一个子域内进行交流。从那里开始变得越来越困难 - 我从来没有一致的跨浏览器子域支持在两个窗口(或iframe)之间操纵JavaScript。

那就是说,如果它们是同一个域,那就是要进入它的问题。如果我有:

  • 窗口A打开Window B
  • 窗口B声明var winBVar
  • 窗口A能够在声明该变量之后(仅在之后,您仍然需要等待document.onload等)访问winBVar。