如何在当前文档中加载DOM文档?

时间:2014-01-12 01:22:46

标签: javascript jquery

遗憾的是,这是一个愚蠢的问题。但是,如果有人能指出我正确的方向,我会很感激。我正在尝试学习一点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网站的DOM对象。我现在如何将内容写入/加载到文档(我当前的文件)?如果我插入document.write(test)它然后打印对象对象而不是对象内容。

4 个答案:

答案 0 :(得分:4)

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

现在你的测试包含一些东西,你可以将它放在一个div中,例如,如果你有一个div:

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

使用此:

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

查看documentation了解更多示例

答案 1 :(得分:3)

jQuery的.get()函数用于使用AJAX检索数据。通常,ajax用于获取网站的数据或片段,而不是加载整个网站。

所以有一些问题:

  1. 由于名为"Access-Control-Allow-Origin"的内容,Facebook不允许您使用AJAX加载其主网页。出于安全考虑,您不能只加载任何人的网站。但是,many websites允许您API's grab data
  2. 即使您从http://facebook.com/网址获取了某些内容,您也无法对返回的数据进行任何操作。请参阅Selman22的答案,了解如何处理从ajax调用中收到的数据。

答案 2 :(得分:1)

假设你有这个div:

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

你可以这样做:

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

我很遗憾你在一个没有同源策略的环境中运行(例如Phonegap App)。

如果您在典型的浏览器中运行,由于该策略,将无法对facebook.com进行ajax调用

干杯

答案 3 :(得分:1)

如果您想让Facebook显示在您的网站上,您有2个选项。

首先使用iframe,但我相信他们会有安全措施来打破框架。

另一种是网络抓取,但这需要服务器端编码,如PHP,Node等

这是一个节点示例 http://blog.miguelgrinberg.com/post/easy-web-scraping-with-nodejs