【问题标题】:Best way to overwride all target="_blank" to open links on same page覆盖所有 target="_blank" 以在同一页面上打开链接的最佳方法
【发布时间】:2019-10-10 14:48:55
【问题描述】:

是否可以将页面上的所有 href 链接更改为在同一选项卡 (target_self) 上打开而不是目标空白。 约束:由于限制无法访问代码,需要一种方法来覆盖所有链接以在同一页面中打开,而不是在新页面中打开。

尝试了以下方法

var otherWindow = window.open();
otherWindow.opener = null;

$('a[target="_blank"]').each(function(){
   $(this).removeAttr('target');
});

有没有办法定位所有链接?或者也许

【问题讨论】:

  • 对于 .each 我总是使用 function(i,element) ...也许可以尝试 $(element).attr({'target':'_self'}) ...使用浏览器检查器查看如果你的 jquery 工作了
  • “无法访问代码”“需要一种方法来覆盖所有链接” 似乎不一致,除非您正在编写浏览器扩展/用户脚本。你在哪里可以写代码?
  • @TedFitzpatrick jQuery 将元素绑定到 this 所以 OP 的代码应该没问题
  • 不需要.eachremoveAttr() 将自动对所有选定的元素进行操作。 $('a[target="_blank"]').removeAttr('target')
  • 您的代码适用于我:jsfiddle.net/barmar/uL5g98na/3 如果它在您的应用程序中不起作用,则必须打开新窗口。

标签: javascript jquery css


【解决方案1】:

下面的代码对我有用。

请试一试。

<!DOCTYPE html>
<html lang="en">
  <head>
    <meta charset="utf-8" />
    <link
      rel="stylesheet"
      href="https://maxcdn.bootstrapcdn.com/bootstrap/3.4.0/css/bootstrap.min.css"
    />
    <script src="https://ajax.googleapis.com/ajax/libs/jquery/3.4.1/jquery.min.js"></script>
    <script src="https://maxcdn.bootstrapcdn.com/bootstrap/3.4.0/js/bootstrap.min.js"></script>
  </head>
  <body>
    <a href="https://stackoverflow.com" target="_blank">Stack Overflow</a>
    <a href="https://stackoverflow.com" target="_blank">Stack Overflow</a>
    <a href="https://stackoverflow.com" target="_blank">Stack Overflow</a>
    <script>
      $(document).ready(function() {
        $('a[target="_blank"]').prop("target", "_self");
      });
    </script>
  </body>
</html>

【讨论】:

  • 问题是 - 代码只能通过一个小部件添加,该小部件被添加到标题标签中,而 document.ready 帮助解决了这个问题。
【解决方案2】:

你可以试试下面的代码。 试试这个https://jsfiddle.net/4wLq7k8x/1/

$('a[target="_blank"]').removeAttr('target');

$('a[target="_blank"]').removeAttr('target');
<script src="https://cdnjs.cloudflare.com/ajax/libs/jquery/3.3.1/jquery.min.js"></script>
<a href="https://www.yahoo.com" target="_blank">Google</a> (target=_blank)<br>
<a href="https://www.google.com" target="new">Yahoo</a> (target=new)

【讨论】:

    猜你喜欢
    • 2013-04-27
    • 1970-01-01
    • 1970-01-01
    • 2023-01-31
    • 1970-01-01
    • 2016-02-15
    • 2012-07-06
    • 2015-08-16
    • 1970-01-01
    相关资源
    最近更新 更多