使用javascript在外部站点上按下按钮
有没有办法用javascript和/或jquery在外部站点上按下按钮?像这样打开一个新窗口:使用javascript在外部站点上按下按钮,javascript,jquery,window.open,Javascript,Jquery,Window.open,有没有办法用javascript和/或jquery在外部站点上按下按钮?像这样打开一个新窗口: windowObjectReference = window.open("http://some_site.html","name"); 然后我想按下这个网站上的一个按钮。大概是这样的: windowObjectReference.button.click(); 或: 如果浏览器允许你通过自己网站上的脚本来实现这一点,那将是一个巨大的安全违规行为 因此,不,这是不可能的,也不应该是可能的 但是
windowObjectReference = window.open("http://some_site.html","name");
然后我想按下这个网站上的一个按钮。大概是这样的:
windowObjectReference.button.click();
或:
如果浏览器允许你通过自己网站上的脚本来实现这一点,那将是一个巨大的安全违规行为 因此,不,这是不可能的,也不应该是可能的 但是
如果两个站点都属于您(您可以访问它们的代码),您可以传递一个参数(例如,作为URL中的散列),那么目标网站可能会读取该参数并触发您提到的事件(
name.button.click()
)。您不能从网页使用JavaScript执行此操作。
不过,您可以从浏览器扩展插件执行此操作。不强>
出于安全原因。这种攻击叫做!因为SOP,您不允许这样做。任何攻击都将被视为点击劫持攻击,并可能导致不良后果 有没有办法用javascript在外部站点上按下按钮 和/或jquery 我知道我在聚会上迟到了,但不幸的是,这是一个非常简单的方式
如果你不知道它是如何工作的,你就不能对它进行跟踪:)谢谢,你有什么特别的浏览器和扩展吗?我想是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();