簡體   English   中英

如何在當前文檔中加載DOM文檔?

[英]how to load a DOM document in the current document?

可悲的是,這是一個愚蠢的問題。 但是,如果有人可以指出正確的方向,我將不勝感激。 我試圖學習一些JQuery,並編寫了以下內容;

<html>
<head>
<script src="http://ajax.googleapis.com/ajax/libs/jquery/1.10.2/jquery.min.js">
</script>
<script>
var test = $.get( "http://www.facebook.com", function() {
   alert( "Load was performed." );
});
</script>
</head>
</html>

我認為測試現在包含Facebook.com-website的DOM對象。 現在如何將內容寫入/加載到文檔(當前文件)中? 如果我插入document.write(test),它將打印對象對象,但不打印對象內容。

var test;
$.get( "http://www.facebook.com", function(data) {
       test = data;
       alert( "Load was performed." );
 });

現在,您的測試包含某些內容,您可以將其放入div中,例如,如果您具有以下div:

<div id="content"> </div>

用這個:

$("#content").html(test);

查看文檔以獲取更多示例

jQuery的.get()函數用於使用AJAX檢索數據。 通常,ajax用於獲取網站的數據或片段,而不是加載整個網站。

因此,存在一些問題:

  1. 由於出現了“ Access-Control-Allow-Origin” ,Facebook不允許您使用AJAX加載其主要網頁。 出於安全考慮,您不能只加載任何人的網站。 但是, 許多網站都有API ,可讓您從中獲取數據
  2. 即使您從http://facebook.com/網址獲得了一些回饋,您也不會對要返回的數據做任何事情。 請參閱Selman22的答案,以獲取有關如何處理從ajax調用收到的數據的示例。

假設您有這個div:

<div id="fb"> </div>

您可以這樣做:

$.get( "http://www.facebook.com", function(data) {       
   alert( "Load was performed." );
   $("#fb").html(data);
});

我假設您在沒有相同原始策略的環境中運行(例如Phonegap App)。

如果您在典型的瀏覽器中運行,由於該政策,將無法對Facebook.com進行ajax調用

干杯

如果您想在自己的網站上顯示Facebook,則有兩個選擇。

首先是使用iframe,但是我敢肯定,他們將有足夠的安全性來突破框架。

另一個是做網絡抓取,但是這需要服務器端編碼,例如PHP,Node等。

這是一個節點示例http://blog.miguelgrinberg.com/post/easy-web-scraping-with-nodejs

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM