1

可以说我有example.html,在里面我有一个类似的代码

<iframe src="x.com" id="x"></iframe>

来自x.com,我想把所有东西都放进去

<div class="content">...</div> 

进入example.html里面

<div class="xCodes">ONTO HERE</div>

所以我试图让 x.com 中的元素显示出来example.html,我听说跨域问题无法访问它们。

x.html我想知道是否有另一种方法可以从example.html

也许不使用<iframe />??

4

2 回答 2

2

来源:http: //james.padolsey.com/javascript/cross-domain-requests-with-jquery/

$('.xCodes').load('http://x.com/x.html');

或者

$.ajax({
    url: 'http://x.com/x.html',
    type: 'GET',
    success: function(res) {
        var data = $(res.responseText).find('.content').text();
        $('.xCodes').html(data);
    }
});
于 2012-07-25T17:52:01.003 回答
0

如果我理解正确,您想从一个站点上的 DIV 中提取内容并将其显示在另一个站点上。这有几个问题,但我将专注于技术方面,并假设您在提取内容方面是真诚的。

您在这里遇到的真正问题是您无权访问尚未加载的页面的 DOM 元素。因此,您需要告诉浏览器加载该页面的数据,以便您可以访问应该在页面上加载的元素,然后将信息拉出。JQuery 有一个很好的小方法来帮助调用 .load() ( http://api.jquery.com/load/ )。

但是,作为重要的旁注,您不能这样做,因为所有现代浏览器都以这种方式禁止跨站点访问:

从 JQuery .load() 页面:

附加说明:由于浏览器安全限制,大部分“Ajax”请求均受同源策略约束;请求无法从不同的域、子域或协议成功检索数据。

并查看:

http://en.wikipedia.org/wiki/Same_origin_policy

还有一点警告。如果您不控制其他站点上的代码,您可能会将自己暴露在严重的安全问题中,因此请仅在您可以控制其他站点或出于某种原因对该站点有绝对信任的情况下执行此操作。或者,如果可用,您应该尝试为您尝试从中获取数据的站点/服务使用 API。

于 2012-07-25T17:52:30.573 回答