0

我有以下代码,除了它还捕获同一域上的子域外,它的效果很好。例如,如果在 example.ca 上,我想去 sub.example.ca 它不会让我。我了解该网站在技术上有所不同,但我不需要这些页面的警告。

同样在站点 sub.example.ca 上(因为它使用大多数相同的文件)每个内部链接都会触发,因为内部链接现在是 sub.example.ca,这真的很烦人。

我可以使用 bypass 变量,但不想将它添加到我创建的每个菜单和页面中。懒惰是最好的。哈哈。

$(document).ready(function() {
  $("a").click(function() {
    var href = this.href;
    var ourDomainRegex = /^https?:\/\/(www[.])?example[.]ca/;
    // those seeking flexibility, consider this: 
    // new RegExp('^https?:\\/\\/(www[.])?'  +  ourDomain)
    if (href.indexOf("http") === 0   &&   ! ourDomainRegex.test(href) )
    {
      if($(this).attr('rel')!='pass') {
          this.href = "/leave.php?p=" + href;
      }
    }
  });
});

我将如何让它适用于子域。谢谢!

4

1 回答 1

0

您可以使您的正则表达式允许任何子域:

/^https?:\/\/([a-z0-9-]+[.])*example[.]ca/
于 2013-10-20T23:51:51.093 回答