我需要在我的網站中顯示另一個外部網站的內容。通常<iFrame>
標籤可以做到這一點。但我的要求不是全部內容,只是該網站的一部分。例如,該網站的佈局有3個部分,<div id="header">
,<div id="sidebar">
,<div id="content"
。我的意思是我只想顯示"id=content"
部分。我該怎麼做?我試過$("$my-content").load("http://www.anothersite.com #load-content")
,但不能正常工作。加載外部網站的內容
1
A
回答
6
這是由於AJAX跨域安全限制,一個訣竅是從服務器設置代理腳本 ,該代理腳本從不同站點(域)下載內容並將該代理用作JavaScript中的參考。
例子:(proxy.php)
<?php
$url = 'http://www.anothersite.com';
$htm = file_get_contents($url);
echo $htm;
?>
然後在你的腳本,而不是:
$("$my-content").load("http://www.anothersite.com #load-content");
使用代理:
$("$my-content").load("proxy.php #load-content");
0
最直接的(和跨瀏覽器)方式是編寫一個服務器端程序(使用PHP或Perl),它位於服務器上,並且在本地調用,然後從遠程站點獲取所需內容。
如果你的控制下有外域,有辦法用直接的javascript來做,但前者更容易。
0
設置您的AJAX請求來命中加載內容(即curl)的PHP腳本並將其作爲AJAX的xhr響應返回。例如,可以根據目標元素的ID來加載AJAX響應(在您的情況下爲部分頁面)並將其插入到當前頁面中。
看到這個問題,它幾乎您的問題: https://stackoverflow.com/questions/3928228/php-and-curl-get-ajax-data
JavaScript庫像jQuery需要花費很多的麻煩了AJAX的:http://api.jquery.com/load
如果你還是有問題,調試帶有Firebug的ajax讓事情變得更容易,因爲您可以看到請求發生了什麼。
(如果你沒有服務器端腳本,而不能編輯你的Apache配置,你有點失控運氣,壽。)
相關問題
- 1. 網站並未加載全部內容
- 2. 你有訪問iframe加載外部網站的內容嗎?
- 3. jQuery Fancybox無法在iFrame中加載外部網站內容
- 4. 預加載外部網站內容,然後重定向
- 5. 從外部網站獲取內容?
- 6. 將外部網頁內容添加到網站Feed
- 7. 從網站加載內容到MATLAB,包括內部框架(iframe)
- 8. JavaScript加載的外部內容SEO
- 9. 加載外部網站視圖jQuery ajax
- 10. PhoneGap:無法加載外部網站
- 11. jQuery加載外部網站頁面
- 12. 如何從外部網站加載DIV?
- 13. 跟蹤圖像的外部網站/交通加載外部網站
- 14. HTTPS加載其他網站內容
- 15. 在https網站上加載http內容
- 16. 網站內容加載,進度條
- 17. 異步加載網站內容
- 18. ios從網站加載內容
- 19. 網站加載不同內容
- 20. jquery從另一部分網站的ajax加載內容
- 21. 僅加載外部網頁正文的內容
- 22. 使用AJAX加載外部內容
- 23. 使用AJAX加載外部內容
- 24. 在div中加載外部ajax內容
- 25. 加載圖片/內容後從外部URL的內容
- 26. 網站劇院加載從某些網站或域名內容
- 27. 在離子內容中加載外部網址
- 28. Extjs:以普通/文本方式加載外部網址內容
- 29. 以編程方式滾動外部網頁以加載內容
- 30. ExtJS 4.1從外部網頁加載內容
但不會破目標網頁包含非絕對網址和相關鏈接時的佈局? – Mori 2013-11-29 06:46:03