有幾個問題與您的代碼:
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