2015-10-05 47 views
0

我目前正在寻找一种方法来从外部域加载一个div的内容。我可以在我的网站上加载部分外部html代码而不使用iframe吗?

目标网站(www.aaa.com):

<html> 
    <head> 
     <title>Target website</title> 
    </head> 
    <body> 
     <div id="hello_world" name="hello_world"> 
      I want to load this div SO BADLY. 
     </div> 
     <div id="crappy_div" name="crappy_div"> 
      I don't want to load this div. :(
     </div> 
    </body> 
</html> 

我的网站(www.bbb.com):

<html> 
    <head> 
     <title>My shiny website</title> 
    </head> 
    <body> 
     DIV FROM EXAMPLE ABOVE LOADED HERE DYNAMICALLY 
    </body> 
</html> 

所以我知道我可以加载完整www.aaa.com内容与iframe或使用Angluarjs ngInclude或使用jQuery,但我只想加载一个div而不是整个内容。

这怎么办?

爱人ü所有,有一个愉快的一天

+3

除非第三方网站(aaa.com在你的例子)支持CORS - 这是极不可能的 - 那么你由于[同源策略](http://en.wikipedia.org/wiki/Same-origin_policy),无法在Javascript中实现此功能。 –

+0

感谢您的评论好吧,也许有一种方法可以请求内容并将其过滤到我要定位的div中? –

+0

恐怕不是。请求的响应将被阻止。除非第三方明确允许,否则您不能从JS中的第三方获取任何数据。此权限通常只能在API上授予。这个问题的通常解决方案是从服务器向第三方HTML发出请求。然后,您从本地域上的端点公开此HTML响应,并让您的JS代码调用该响应。 –

回答

1

你必须先用mmethod:https://api.jquery.com/first/

var getDiv = $('Extrnal_div').first().html(); 

//获得第一个div内容是这样

替换你的身体

$('body').html($('Extrnal_div').first().html()); //替换你的身体

检查,让我知道

+0

存在比如何访问所需的HTML更大的问题。 –

+0

这将与CORS一起工作吗? –

1

如果CORS不是问题了你,那么你可以使用jQuery的load()功能是这样的:

$('mainPageDiv').load('extPage #divId'); 
相关问题