我有一个母版页和子页面 菜单位于母版页上 我通过Ajax调用来获取隐藏菜单链接的权限。
$.ajax({
type: "POST",
contentType: "application/json; charset=utf-8",
url: "Query.asmx/GetUserPermissions",
data: "{}",
dataType: "json",
success: function (Result) {
Perms = Result.d;
var pageName = location.pathname.substring(1).toLowerCase();
if (Perms.indexOf('4') != -1) {
$("#liCars").show();
}
else {
if (pageName == 'webform2') {
window.location = 'default.aspx'
}
}
},
error: function (Result) {
alert(Result.d);
}
});
那么问题是什么?
问题是如果用户在没有菜单的情况下键入url
,页面会在重定向到默认值之前完全加载。
我认为这是正常的,因为它是在document.ready上
我在ready()
之外尝试过,但li
不存在......所以隐藏或显示不起作用。
答案 0 :(得分:0)
我认为您应该从html文件中剪切完整菜单html,并在需要时使用append();
来显示它。这样它就会显示,直到javascript加载为例:
$.ajax({
type: "POST",
contentType: "application/json; charset=utf-8",
url: "Query.asmx/GetUserPermissions",
data: "{}",
dataType: "json",
success: function (Result) {
Perms = Result.d;
var pageName = location.pathname.substring(1).toLowerCase();
if (Perms.indexOf('4') != -1) {
$("#mydiv").append('<menu>menu items html</menu>');
}
else {
if (pageName == 'webform2') {
window.location = 'default.aspx'
}
}
},
error: function (Result) {
alert(Result.d);
}
});