使用Javascript在不同的域上查找元素属性

时间:2013-08-18 17:36:15

标签: javascript jquery dom

是否可以在一个网站上找到某些元素的属性并将其显示在另一个网站上?例如,如果我有网站1,我可以使用Javascript / jQuery查找网站2上特定图像或div的大小,并在网站1上显示这些属性吗?

如果我不能用Javascript做那样的事情,有没有另外一种方法来完成这个特定的例子?

2 个答案:

答案 0 :(得分:1)

<强> 1 即可。您尝试做的事情无法使用任何AJAX库完成。浏览器的跨域策略不允许您这样做。

但是你可以结合使用php(或任何其他服务器端语言)和AJAX来实现这一点。像这样创建一个php脚本:

<?php
    $url=$_POST['url'];
    if($url!="")
        echo file_get_contents($url);
?>

让我们说脚本的名称是fetch.php。 现在,您可以将jQuery代码中的AJAX调用抛出到此fetch.php,它将为您提取HTML代码。

<强> 2 即可。同样的起源适用。尝试此代码,您将面临安全错误,

$.get("other web page site", {}, function(content){
   $("#receipe").html(content)
}, "html")

第3 即可。使用Greasemonkey,可以发出第三方请求。面向jQuery的教程在this page上提供。简短的回答让Greasemonkey代表您提出请求。将所有XMLHttpRequest个对象替换为GM_xmlhttpRequest个对象。

有用的链接,

Can Javascript read the source of any web page?

http://www.sitepoint.com/forums/showthread.php?836704-How-to-get-contents-of-3rd-party-website-into-javascript-variable

答案 1 :(得分:0)

遗憾的是,由于same origin policy,您无法访问其他域上的DOM。如果您控制这两个域,则可以使用CORS并修改服务器HTTP标头以允许Javascript访问。

解决方法是使用服务器充当两个网站之间的代理。因此,您将在网站1上拥有一个服务器端脚本,该脚本将向网站2发送请求并从网站1返回内容。