从页面中删除所有标记(html、脚本、DOCTYPE)并使用jQuery加载另一个页面
这是我的问题。我在一个页面上抛出一个$.post请求,如果登录不成功,它将返回一条错误消息,如果登录成功,它将返回我的主页 我在这里尝试的是删除页面的全部内容,包括和标记,并用我刚从$.post请求收到的新内容替换它们(post请求是一个正常页面,所有标记都完好无损) 通过使用jQuery可以做到这一点吗?如果不是,可以用纯javascript实现吗 我可以想象:从页面中删除所有标记(html、脚本、DOCTYPE)并使用jQuery加载另一个页面,jquery,Jquery,这是我的问题。我在一个页面上抛出一个$.post请求,如果登录不成功,它将返回一条错误消息,如果登录成功,它将返回我的主页 我在这里尝试的是删除页面的全部内容,包括和标记,并用我刚从$.post请求收到的新内容替换它们(post请求是一个正常页面,所有标记都完好无损) 通过使用jQuery可以做到这一点吗?如果不是,可以用纯javascript实现吗 我可以想象: $('html').empty() 将努力删除所有内容;但显然,这附带了一个警告,您必须插入完整的html页面。如果可能,您可以使
$('html').empty()
将努力删除所有内容;但显然,这附带了一个警告,您必须插入完整的html页面。如果可能,您可以使用:
$(newPageVariableFromAjax).insertAfter($('html').eq(0));
$('html').eq(0).remove(); // or .empty()
但我不确定这是你能用的最好的方法。为什么不清空body标签,并将新的
body
内容附加到那里呢?我仍然在寻找通过jQuery实现的方法,但我确实通过以下代码实现了这一点
$(document).ready(function(e) {
$("#submit").click(function(e) {
var uname = $("#uname").val();
var pword = $("#pword").val();
var qstring = '?op=login&uname='+uname+'&pword='+pword;
$.post(document.URL, qstring, function(data){
//as my script returns the whole new page...
document.open();
document.write(data);
document.close();
});
});
});
好的,那么我应该如何填充新数据?包括脚本?css?@Caspar,是的;我已经用一种可能的方法处理了这个问题。虽然我不确定jQuery是否可能删除它所操作的文档。或者,如果,或者多长时间,它可以简单地从浏览器的内存中工作……对我个人来说,这似乎是一个奇怪的请求。是的,它确实包括了所有内容,包括脚本和脚本css@LoneWOLFs:在这种情况下,为什么不直接链接到页面?你的方法似乎不必要的复杂。为什么不直接链接到新页面呢?你的方法的优点是什么?这里唯一要避免的是浏览器地址栏中的url替换。也许还有咔嗒声。。有不同的方法可以做到这一点,比如服务器端。请不要在简单的问题上寻找复杂的答案。