我有一个带有链接的cshtml页面,以及一个显示某些内容的div。
<a href="#" onclick="Show_New_Page('#First_Div')>My Link</a>
<div id="First_Div">
@Html.Partial("General_Page") <- This is the default page that gets displayed on load.
</div>
当您点击链接时,将调用javascript函数Show_New_Page并将字符串'#First_Div'作为参数传递。我在Show_New_Page中传递了我希望为ajax设置的div的名称来表示它的成功价值。该功能如下所示:
function Show_New_Page(div) {
$.ajax(
{
type: "POST",
url: url, //Declared above globally, unimportant
data: data, //Declared above globally, unimportant
success: function (result) {
$(div).html(result);
}
});
}
在Internet Explorer中单击此链接时,新页面显示正常,没有任何问题。但是,当您在FireFox中单击此链接时,整个页面将变为白色并且永远不会成功加载。
有很多关于Ajax和不同浏览器问题的帖子,但我无法看到一个帮助我的帖子。我可以尝试任何提示或提示非常感谢。我不确定为什么会发生这种情况,所以如果我遗漏了任何信息,我一定会尽力提供。
答案 0 :(得分:1)
当您调用)
函数时,似乎缺少结束Show_New_Page
。此外,建议从点击处理程序返回false以取消默认操作:
<a href="#" onclick="Show_New_Page('#First_Div'); return false;">My Link</a>
此外,您可能更愿意为此锚定一个ID:
<a href="#" id="myLink" data-id="#First_Div">My Link</a>
然后在一个单独的文件中不引人注意地AJAX化它以避免使用javascript混合标记:
$(function() {
$('#myLink').click(function() {
$.ajax({
type: 'POST',
url: url, //Declared above globally, unimportant
data: data, //Declared above globally, unimportant
context: { id: $(this).data('id') },
success: function (result) {
$(this.id).html(result);
}
});
return false;
});
});
答案 1 :(得分:0)
这里的问题是我点击链接后传递的ajax视图使用的是document.write()语句。我已经知道在页面加载后这很奇怪。我已将这些语句移到未加载ajax的文件中,并修复了问题。感谢所有评论并向我提出建议的人。正是对这些想法的调查才引出了我的核心问题!
上一课:小心firefox中过多的document.write()语句!