使用javascript在外部站点上按下按钮

使用javascript在外部站点上按下按钮,javascript,jquery,window.open,Javascript,Jquery,Window.open,有没有办法用javascript和/或jquery在外部站点上按下按钮?像这样打开一个新窗口: windowObjectReference = window.open("http://some_site.html","name"); 然后我想按下这个网站上的一个按钮。大概是这样的: windowObjectReference.button.click(); 或: 如果浏览器允许你通过自己网站上的脚本来实现这一点,那将是一个巨大的安全违规行为 因此,不,这是不可能的,也不应该是可能的 但是

有没有办法用javascript和/或jquery在外部站点上按下按钮?像这样打开一个新窗口:

windowObjectReference = window.open("http://some_site.html","name"); 
然后我想按下这个网站上的一个按钮。大概是这样的:

windowObjectReference.button.click();
或:


如果浏览器允许你通过自己网站上的脚本来实现这一点,那将是一个巨大的安全违规行为

因此,不,这是不可能的,也不应该是可能的

但是


如果两个站点都属于您(您可以访问它们的代码),您可以传递一个参数(例如,作为URL中的散列),那么目标网站可能会读取该参数并触发您提到的事件(
name.button.click()
)。

您不能从网页使用JavaScript执行此操作。 不过,您可以从浏览器扩展插件执行此操作。


出于安全原因。这种攻击叫做!因为SOP,您不允许这样做。任何攻击都将被视为点击劫持攻击,并可能导致不良后果

有没有办法用javascript在外部站点上按下按钮 和/或jquery

我知道我在聚会上迟到了,但不幸的是,这是一个非常简单的方式

  • 在页面上划个div(例如#externalDiv)
  • 将CSS属性设置为隐藏,将显示设置为无
  • 使用(简单方式)jQuery method.load()或使用XMLHttpRequest()创建自己的JS方法
  • 在页面上加载外部页面
  • 点击你想要的按钮

    $('#externalDiv').load('',function(){$('#externalPageButtonId')。单击();})


  • 如果你不知道它是如何工作的,你就不能对它进行跟踪:)

    谢谢,你有什么特别的浏览器和扩展吗?我想是Firefox,几乎所有的浏览器。我在Chrome中使用“空白画布脚本处理程序”,Opera支持开箱即用的用户脚本,Firefox需要一个名为GreaseMonkey的插件。这就是我一直在寻找的解决方案。非常感谢。我没有意识到,从来没有听说过点击劫持,但名称听起来很有趣:)如果第二个站点属于您,您首先就不会这样做,
    window.open
    将为您提供另一个window对象。因此,不需要弄乱散列。@greut:如果两个站点都属于您,并且它们有不同的域,那么您真的仍然可以访问窗口的内容吗?问题是关于外部站点的,我理解为域之外的东西。我知道我可以使用window.open()访问同一个域,但问题是关于不同的域。所以谢谢你的哈希建议,我会尝试一下。@user1142908:我很高兴它有帮助:)@Tadeck的确,它没有想到他们两个在不同的域上。那只会起作用。externalpage.com支持CORS并允许你的站点加载它。CORS于2014年1月被W3C接受。但如果你检查我的回答日期,你会发现那是2014年1月:)。此时,浏览器还没有完全实现访问控制请求和访问控制响应。今天,点击事件可以通过Selenium在外部触发,或者通过解析HREF和curl来触发……当jQuery出现时,CORS对所有浏览器都可用。自2010年左右,Chrome3、fx3.5、saf4、ie8CORS已全面面世
    name.button.click();