我想知道如何使用jQuery捕获页面上的所有链接。这个想法与Facebook类似。在Facebook中,如果您单击链接,它会捕获链接并使用ajax加载相同的链接。只有当您在新标签页等中打开链接时,才会使用常规电话加载页面。
有关如何实现此类功能的任何线索?我确定捕获链接不应该是一个问题,但是捕获表单提交然后通过ajax提交整个数据然后显示结果呢?
是否有任何已经存在的插件?
感谢您的时间。
答案 0 :(得分:1)
艾力,
你绝对可以这样做。
我有一个以这种方式处理的表单。它使用上面提到的jquery表单插件kgiannakakis。下面的示例javascript显示了它的工作原理。
$("form").ajaxForm({
beforeSubmit: function(){
//optional: startup a throbber to indicate form is being processed
var _valid = true;
var _msg = '';
//optional: validation code goes here. Example below checks all input
//elements with rel attribute set to required to make sure they are not empty
$(":input [rel='required']").each(function(i){
if (this.value == '') {
_valid = false;
_msg += this.name + " may not be empty.\n";
$(this).addClass("error");
}
});
alert(_msg);
return _valid;
},
success: function(response){
//success here means that the HTTP response code indicated success
//process response: example assumes JSON response
$("body").prepend('<div id="message" class="' + response.status + '"></div>');
$("#message").text(response.message).fadeIn("slow", function(){
$(this).fadeOut("slow").remove();
});
}
});
答案 1 :(得分:0)
Form plug-in可以将常规表单转换为Ajax表单:
$("#myForm").ajaxForm(
{beforeSubmit: validate, success: showResponse} );
对于任意形式,很难做到你想要的。如果表单使用验证或由Ajax提交开始,该怎么办?同样的事情适用于链接。如果有一些javascript导航脚本(window.location = Url)怎么办?如果您无法完全控制页面,则很难做到您想要的。
答案 2 :(得分:0)
通常像facebook这样的页面,每个事件和每个表单都单独编码,因为服务器端文件通常是为每个操作/操作组设置的。我怀疑是否会有一个简洁的方法来转换只有一个插件的页面。如果是的话,我会看到很多开销。
你可以手动完成,但是再次滥用Ajax。这不是闪存,并且使用ajax进行所有服务器通信会遇到很多问题。