是否可以禁用特定页面的javascript IF语句

时间:2015-08-22 11:59:14

标签: javascript jquery

在所有页面标题模板中写入" IF" 语句的javascript,并且仅对特定页面不必要,是否可以为特定页面禁用该语句。以下是在新标签页中打开外部链接的javascript,我可以仅针对谷歌自定义搜索页面禁用此小脚本,因为结果链接有谷歌(外部)网址,重定向到网站(内部),这就是脚本将链接作为外部读取的原因。还是有一些比禁用if语句更好的方法?如果有人知道如何解决这个问题,请帮助

使用Javascript:

$(document).ready(function() {
  $('a').each(function() {
    var a = new RegExp('/' + window.location.host + '/');
       if (!a.test(this.href)) {
            $(this).attr("target", "_blank");
       }
   });
});

2 个答案:

答案 0 :(得分:1)

为多个页面执行此操作的一种方法,如下所示:

var excludedPages = ['blockpage1.html', 'blockpage2.html'];
for (var i = 0; i < excludedPages.length; i++) {
    if (location.href.indexOf(excludedPages[i]) !== -1) {
        // do something if page found
        console.log("this page is blocked for extra code");
    } else {
        // do something if page not found in the list
        console.log("this page is not included in block list");
    }
}

编辑
注意:使用JavaScript唯一需要注意的是,它在客户端(浏览器端)运行,任何具有基本Web开发知识的人都可以更改块站点或编辑任何站点内容。这样就可以访问被阻止的网站。所以这一切都取决于你的阻止机制和策略的重要性。

答案 1 :(得分:0)

最简单的方法可能是在脚本上方的自定义搜索页面上设置一个标志变量,例如:

var keepInternal = true;

然后修改脚本中的一行以检查该标志:

$(document).ready(function() {
  $('a').each(function() {
    var a = new RegExp('/' + window.location.host + '/');
       if (!a.test(this.href) && !keepInternal) {
            $(this).attr("target", "_blank");
       }
   });
});