我有一个母版页和一个子页。
菜单在母版页上。
我通过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不存在...因此隐藏或显示不起作用。
发布于 2017-05-20 02:07:57
我认为你应该从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);
}
});https://stackoverflow.com/questions/44076114
复制相似问题