首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >在页面完全加载之前运行javascript

在页面完全加载之前运行javascript
EN

Stack Overflow用户
提问于 2017-05-20 01:46:49
回答 1查看 35关注 0票数 0

我有一个母版页和一个子页。

菜单在母版页上。

我通过Ajax调用隐藏菜单链接来获得权限。

代码语言: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) {
      $("#liCars").show();
    }
    else {
      if (pageName == 'webform2') {
        window.location = 'default.aspx'
      }
    }
  },
  error: function (Result) {
    alert(Result.d);
  }
});

那么问题出在哪里呢?

问题是,如果用户在没有菜单的情况下键入url,页面在被重定向到默认页面之前就会完全加载。

我认为这是正常的,因为它是在document.ready上的。

我也在ready()之外尝试过,但是li不存在...因此隐藏或显示不起作用。

EN

回答 1

Stack Overflow用户

发布于 2017-05-20 02:07:57

我认为你应该从html文件中剪切出完整的菜单html,并在需要时使用append();来显示它。这样,它将不会显示,直到javascript加载,例如:

代码语言: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);
  }
});
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/44076114

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档