a标签没有设置target 属性,但也总是打开新窗口?

发布于 2022-09-06 03:17:28 字数 138 浏览 9 评论 0

在修改一个别人用concrete5做的一个网站,我只是改动了主题,其它方面都没有改动过,内文还是原来的,都是由tinymce html editor编辑而成的,内文中的链接都没有设置target属性,但也总是打开新窗口,请问是什么原因造成呢?没改动前,是不会的

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(3

讽刺将军 2022-09-13 03:17:29

我这里你在评论中所给的两个链接里行为都是一样的,有些链接正常,另一些会在新标签页打开,它们调用了 window.open

℉絮湮 2022-09-13 03:17:29
  • 可能是通过 JS 来实现的,类似 这样
  • 可能和浏览器有关,类似 Maxthon,搜狗等浏览器本身能够强制链接在新页面打开
清晨说晚安 2022-09-13 03:17:28

赞同@依云 的观点。仔细看了网页的文件之后发现在<head>里头有这么一段js代码:

function openinnew() {
   if (!document.getElementsByTagName) return;
   var links = document.getElementsByTagName("a");
   for (var i=0; i<links.length; i++) {
      if (links[i].getAttribute("href")) {
         if (links[i].getAttribute("rel") == "external" || (links[i].getAttribute("href").substring(0,4) == 'http' && links[i].getAttribute("href").indexOf('santaferelo.com/') == -1)) {
            links[i].onclick = new Function("window.open('"+links[i].getAttribute("href")+"'); return false;");
         }
      }
   }
}
window.onload = openinnew;

这里是定义了一个openinnew()的函数,并在网页加载后执行这个函数。获取所有a标签然后对其进行判断,如果a标签满足rel属性为externalhref的地址前面为http并且非santaferelo.com这个域名下的地址的时候,就调用window.open新开一个标签。

根据以上解读,所以你就会发现其实你的原来页面并不是所有的网址都是在原始页面中打开的,Records Storage and Records Management你找找这个文字的链接,因为是非条件域下的地址所以也是在新窗口中打开的。然后你新改的地方由于域名变成了app.hknow.net了,但是js的判断域没改..所以,你懂的...

大概就是这么一回事啦,以上。

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文