另一个网站上的元素Xpath /交叉多米诺

时间:2015-07-16 10:00:55

标签: javascript iframe xpath cross-domain

我希望在网站(我自己的域)上获取元素的XPATH,我使用JavaScript代码中提到的XPATH代码获取该元素。

现在我想点击按钮,它会打开一个url(跨域)窗口,当用户点击该窗口上的元素时,它会被iframe捕获。

我尝试使用XPATH做同样的事情而没有运气。

现在我的问题是如何获得 another website / Cross domain 元素的http_method_names

任何帮助将不胜感激。

感谢。

3 个答案:

答案 0 :(得分:1)

根据您的评论,我们已经收集到您希望从其他网站捕获信息,这些网站没有包含您域名的Access-Control-Allow-Origin标题(例如,其他网站没有{{3已启用)。由于大多数现代浏览器中都实现了CORS,因此无法跨域和客户端进行此操作。 Same-Origin策略可防止您网站上的任何资源与任何其他网站上的资源进行交互(除非其他网站使用Access-Control-Allow-Origin HTTP标头明确与您的网站共享它们)。

如果您想从您的站点获取有关其他站点的信息,则无法使用服务器端代码。一个简单的解决方案是实现服务器端代理,从您自己的来源重新提供异地网页,因此不会违反同源策略。

答案 1 :(得分:1)

很抱歉,如果没有其他(x-domain)网站的合作,这是不可能的。浏览器的设计不允许出于安全原因访问x域文档的DOM(包括iframe)。

如果您与其他网站有合作,他们可以加载您的javascript文件,然后使用postmessage将xpath传递到原始页面。

其他选项是创建用户可以在其他页面上使用的书签,或浏览器扩展(Chrome和FF很容易开发)...取决于您的用例。

答案 2 :(得分:0)

您可以使用jQuery的load函数获取数据,并将其附加到您的页面。

从那里,您可以访问外部页面中的DOM节点进行处理。

$('#where-you-want').load('//example.com body', function() {
    console.log($('#where-you-want'))

    // process the DOM node under `#where-you-want` here with XPath.
})

您可以在此处查看此操作:http://jsfiddle.net/xsvkdugo/

P.S。:这假设您正在使用已启用CORS的网站。