有几个问题与您的代码:
1)没有指定您的匿名函数的参数。参数 是事件(这里:点击)。你会稍后需要到禁用点击的“正常” 行为:
$("a.bind-jquery-event-here-class").bind("click", function(event) {
event.preventDefault();
2)阅读HREF你不需要val()
。 (val()
是用于从输入字段读取的东西。)
var url = $(this).attr("href");
3)在AJAX的A代表异步。对于你的代码来说,这意味着:只加载 开始从服务器加载数据,但不等待,直到完成。 您必须定义一个回调函数,它在最终到达时处理数据。
4)负载是用来做AJAX调用的,而是将的结果插入到DOM中。你不能用它来提醒。如果您需要警报,请使用$ .ajax。 5)您不能通过AJAX加载任意网址,您的AJAX呼叫只能返回到您的 自己的服务器。如果您需要从其他服务器加载内容,则必须使用服务器端脚本 作为代理。这里是你如何调用代理:
$.ajax({
type: "POST",
url: "proxy.php",
data: "url="+url,
success: function(data){
alert("finally got data " + data);
}
});
,这里是在PHP的例子代理。
<?php
error_reporting (E_ALL^E_NOTICE);
if (isSet($_POST['url'])) {
if(true == ($str=file_get_contents($_POST['url']))) {
echo $str;
exit;
}
}
echo "could not read page";
?>
一句关于php的警告:file_get_contents
可能在您的服务器上禁用。
的这里是完整的javascript代码用于测试:
$(document).ready(function(){
$("a.bind-jquery-event-here-class").bind("click", function(event) {
event.preventDefault();
var url = $(this).attr("href");
alert("loading via proxy: " + url);
$.ajax({
type: "POST",
url: "proxy.php",
data: "url="+url,
success: function(data){
alert("finally got data " + data);
}
});
});
});
你已经错过了 ''到attr的左侧。 – rahul 2009-08-20 06:39:13