如何使特定的JS脚本仅适用于特定页面

时间:2013-01-24 10:03:43

标签: javascript jquery authentication jquery-mobile cookies

如何为特定页面创建脚本,检查现有cookie以及是否存在重定向到指定页面?到目前为止,我有类似的东西,但由于某种原因,它一直在每个页面上触发函数(只是为了澄清我使用jQueryMobile):

$(document).on('pageinit',function(){
  jQuery(function($){
    if ($('body#home').length){
      if($.cookie('usr') && $.cookie('psw')){
        $.mobile.changePage("http://imes.**********.com/userpanel.php");
      }
    }
  });
});

将来我不会在cookie中存储名称和密码,我知道这种方法的安全性问题,我将存储生成的密钥以匹配来自用户cookie的用户,但是现在,对于测试阶段,我使用这些饼干。

2 个答案:

答案 0 :(得分:2)

你的身份证方法本质上是好的,但是长度的测试是我不信任的(我没有争论,只是一种感觉)。

这就是我采用这种方法的原因:

$("body#home").on("load", function() {
    // Eat your cookies here.
});

P.S。
命名标记是没用的,只需要时间。浏览器从右到左读取CSS选择器(我认为JS querySelectors,然后,PS基于这个假设),因此它将首先找到ID为'home'的一个元素,然后获取所有实体(在这种情况下,只有一个身体,但想象你做了div#home并在你的页面上有100个div)并选择正确的一个。由于每个ID只能在页面上出现一次,因此无需为标记命名。

答案 1 :(得分:0)

我不太确定你在问什么,但是如果你想在特定页面上运行代码,你只能使用location.pathname来确定你所在的页面。

jQuery(function($){
    if ( location.pathname.indexOf( '/home' ) ){
        // ...
    }
});

这种方法比查找dom节点要快。此外,用户名和密码应由您的后端语言

的会话处理