2015-10-05 69 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'); 
相關問題