嚴格使用Javascript,是否可以調用遠程URL並將其存儲在變量中?要指定,這不會在同一個域中。基本上,我正在試圖找出最佳的解決方案,用於在Chrome擴展中進行數據挖掘/解析。在Javascript變量中存儲外部頁面源代碼?
2
A
回答
0
如果你被允許使用jQuery你可以有這樣的:
$.ajax({
url: url,
data: data,
success: success,
dataType: dataType
});
另外的$獲得()可以用來實現這個
$.get("test.html",
function(data){
// do something with response data
});
3
如果您嘗試從外部域加載頁面,則會遇到same-origin policy。您可以通過在自己的網站上設置簡單代理來解決此限制。這將會是一些服務器端代碼,其功能是代表您向外部頁面發出http請求,檢索響應,然後將該內容返回到發出原始請求的頁面異步JavaScript代碼。
因此,如果您設置代理在/your_internal_proxy.foo
,而你使用jQuery,您可以建立一個JS函數是這樣的:
var foreignContent = {};
var loadPage = function(pageURL,varName) {
$.ajax({
type: 'get',
url: '/your_internal_proxy.foo',
data: {
url_to_get: pageURL
},
success: function(result) {
foreignContent[varName] = do_something_to(result);
}
});
};
然後,將內容加載到JS變量:
loadPage('http://www.google.com/','goog');
loadPage('http://stackoverflow.com','stack');
+0
..或使用JSONP,如果遠程URL支持它 – 2012-03-21 19:42:01
1
雖然Ajax可能是一種行之有效的方法,但它取決於您所說的「遠程URL」。由於Javascript跨域限制,Ajax只能用於具有與源自JavaScript的域相同的域的url。有各種各樣的解決方法,但大多數需要遠程域的合作。我曾聽說過使用YQL作爲中介,但從未嘗試過。最簡單的方法是在您自己的服務器上託管代理。
相關問題
- 1. 在PHP中存儲Javascript代碼變量?
- 2. 變量不存在外部代碼
- 3. 如何在PHP變量中保存頁面源代碼?
- 4. 頁面刷新後Javascript存儲變量
- 5. 如何從外部javascript變量值存儲到html變量值
- 6. 在selenium ide中存儲html源代碼或變量的內容?
- 7. 在JSF頁面中通過bean包含外部javascript變量?
- 8. 外部存儲庫中的代碼
- 9. 檢索頁面的源代碼在JavaScript
- 10. 如何在外部JavaScript代碼中使用php變量?
- 11. 在JavaScript變量中存儲HTML或XML代碼
- 12. 將整個代碼存儲在一個變量中 - Javascript
- 13. 從頁面抓取變量並存儲在新變量中
- 14. 源代碼存儲在TFS2010
- 15. 檢索頁面源代碼-javascript,cross-domain
- 16. javascript頁面源代碼幫助
- 17. 如何存儲在一個PHP變量CSS代碼使用JavaScript
- 18. Javascript存儲變量
- 19. Web登錄到論壇鏈接來存儲頁面源代碼
- 20. 存儲變量與Javascript對象字面
- 21. 在javascript中加載外部頁面
- 22. 在Javascript中調用外部HTML頁面
- 23. 在方法後面訪問代碼在aspx頁面中變量
- 24. 的頁面和對象的JavaScript外部代碼 - 最佳實踐
- 25. 在JSNI中注入外部JavaScript代碼
- 26. 入門POST變量後,頁面的源代碼已被送往
- 27. Powershell - 將ASP頁面的源代碼分配給一個變量
- 28. 外部存儲庫變化
- 29. JavaScript變量存在頁上
- 30. 外部存儲器向量
不,除非你使用'node.js' =) – kirilloid 2012-03-21 19:23:07
當然可以。查看jQuery的[.load()](http://api.jquery.com/load/)函數。 – j08691 2012-03-21 19:25:58
您的在線研究領域在哪裏? – Sparky 2012-03-21 19:37:44