首页 > 解决方案 > href 目标 _blank 无法正常工作 - 未在新选项卡中打开链接,javascript 以不同方式处理事件

问题描述

我的网站上的 href 目标 _blank 有问题。

我无法确定为什么它没有在新选项卡中打开链接,https ://miwebstudio.com 在以下部分:最新项目> Boranito skat 和其他人实际上是在同一个选项卡中打开链接......可以有人浏览我的网站并告诉我发生了什么以及如何解决它?我认为它确实必须与 JS 有关,但我无法在 Javascript 代码中找到问题,因为我是 javascript 菜鸟,无法正确理解此处的 javascript 代码的作用......

根据我之前的谷歌和 StackOverflow 研究和行为观察的理解,这是因为 javascript 以不同的方式处理事件目标 _blank,实际上,这里的 javascript 被用于网站更改(我的意思是你每次点击菜单,一些 div 出现,一些 div 消失,它正在由 3 个 js 类处理),已经检查了 JS 文件,单击右键,使用元素检查器>元素>事件侦听器>单击事件以查看正在处理的 JS 文件点击时触发...

看这里详细图片

如您所见,在执行 click 事件时正在执行两个 javascript 档案:

1: `jquery.pagepiling.min.js. //// 2: animsition.js`

3: scripts.js

所以显然两个 javascript 类都在处理事件:点击时,但由于我是 javascript 的新手,我无法理解如何处理这个问题,甚至无法理解 JS 对网站的作用(我只是在修改给定的模板以尝试理解它并更好地定制它,(因此,使目标 _blank 正常工作(如前所述,单击链接时,它会在同一页面中打开链接)所以我来这里是为了给你一些支持

这是代码片段,您可以在使用 chrome 中的代码资源管理器时轻松地在我的网站中找到代码:

<a href="project-detail.html" target="_blank" class="project-box">
<div class="project-box-inner">
<h5>Boranito<br>Skat</h5>
<div class="project-category">House Design</div>
</div>
</a>

但是,将把 javascript 源文件留在这里,因为我被要求在此处提供所有可能的详细信息,以避免用户需要访问我的网站my website,这里是处理所有模板事件的所有 3 个 javascript 类,我没有知道他们在做什么:(因为我无法附上 javascript 类的源代码,所以我会为每个 js 文件附上一个链接,以便您检查它,谢谢转发.....

1: 动画.js

2:

jquery.pagepiling.min.js

3:

脚本.js

先感谢您。

标签: javascripthtmljquerycss

解决方案


问题

您在第 13 行的脚本 (scripts.js) 切换 animsition 的链接功能:linkElement: "a.project-box". 这将为每个a具有project-box类的元素添加一个处理程序。处理程序是以下代码(我已评论以供您理解):

function(event) {
  event.preventDefault(); // prevent the default behavior for links (prevent the behavior you want)
  var $self = $(this);
  var url = $self.attr('href'); // get the url of the link
  if (event.which === 2 || event.metaKey || event.shiftKey || navigator.platform.toUpperCase().indexOf('WIN') !== -1 && event.ctrlKey) {
    // open the link in a new tab ONLY IF I clicked on it with the middle mouse button or with Ctrl/Cmd pressed
    window.open(url, '_blank');
  } else {
    // Else do the animation and open the link in the same tab
    __.out.call(_this, $self, url);
  }
}

使固定

要解决您的问题,您可以

  • 更改设置 Animsition 的方式,注意它可以修改您网站中的其他链接/行为
  • 更改链接的类,使其与linkElementAnimsition 的设置不匹配。例如:删除a元素的类(它会影响样式),您将看到链接在新选项卡中打开。

附录

您可以在 devtools -> your link element -> handlers -> click 中找到处理程序的代码。 开发工具截图


推荐阅读