Jquery加载不起作用

时间:2012-02-10 22:53:24

标签: jquery load

以下代码中的jquery加载不起作用。我在这里缺少什么?

<html>
<head>
<script src="http://ajax.googleapis.com/ajax/libs/jquery/1.7/jquery.min.js"></script>
<script src="http://ajax.googleapis.com/ajax/libs/jqueryui/1.8/jquery-ui.min.js">  </script>
</head>
<body style="font-size:62.5%;">

<div id="dialog" title="Dialog Title">I'm in a dialog</div>
<script>
$(document).ready(function() {
        $("#dialog").load('http://www.google.com/intl/en/about/index.html #maia-main');
});
</script>
</body>
</html>

4 个答案:

答案 0 :(得分:5)

您正在请求位于其他域的页面,因此适用跨域策略。如果远程服务器允许,您只能访问跨域数据(并且我只相信使用JSONP,如果我错了,那么任何人都应该纠正我)。如果您想获取Google页面的来源,则需要使用服务器端脚本作为jQuery的代理:

$(function() {

    //notice the client-side code (JS) is requesting a page on the save domain
    $("#dialog").load('my-script.php #maia-main');
});

my-script.php中,您可以获取所需的远程页面:

<?php

//PHP, like all server-side languages has no cross-domain-policy
echo file_get_contents('http://www.google.com/intl/en/about/index.html');
?>

file_get_contents()的文档:http://www.php.net/file_get_contents

答案 1 :(得分:2)

尝试将脚本移动到服务器,jquery ajax不能始终在本地工作。

答案 2 :(得分:0)

脚本执行

使用不带后缀选择器表达式的URL调用.load()时,在删除脚本之前,内容将传递到.html()。这将在丢弃之前执行脚本块。但是,如果使用附加到URL的选择器表达式调用.load(),则在更新DOM之前会删除脚本,因此不会执行脚本。两种情况的例子如下所示:

此处,作为文档一部分加载到#a的任何JavaScript都将成功执行。

$('#a').load('article.html');

但是,在以下情况中,加载到#b的文档中的脚本块将被删除而不会执行:

$('#b').load('article.html #target');

来源:jQuery.com

答案 3 :(得分:0)

在&#34; .load()&#34;

中加载外部链接

创建页面说external.php

在external.php中输入以下代码:

<?php
$url = 'http://ur/url/here'; 
echo $var = get_file_contents($url); ?>

现在在jquery中加载此页面,它将加载外部链接

$(&#39; DIV&#39)。载荷(&#39; external.php&#39);