javascript – 防止在新标签/窗口中打开页面

前端之家收集整理的这篇文章主要介绍了javascript – 防止在新标签/窗口中打开页面前端之家小编觉得挺不错的,现在分享给大家,也给大家做个参考。
我正在开发一个项目,当用户在新标签页或新窗口中打开页面时,该行为会非常奇怪,从而导致应用程序崩溃.

我需要一些可以帮助我防止这种情况的JavaScript.所以基本上我想阻止ctrl点击,鼠标中键,移动点击,从上下文菜单中打开一个新的选项卡/窗口;或至少阻止尽可能多的.我不想阻止正确的ckick(如果可能的话),因为这绝不是一个解决方案.

N.B.:我对js很新,所以任何帮助都会非常感激.

解决方法

代替
<a href="https://stackoverflow.com">link</a>

使用

<a href="javascript:void(0);" onclick="javascript:window.location.href='https://stackoverflow.com';">link</a>

鼠标中键在同一个标​​签页中打开此位置,右键单击 – >在新标签页中打开关于:空白页面.

如果无法手动编辑每个链接,则可以使用此脚本:

for(var els = document.getElementsByTagName('a'),i = els.length; i--;){
    els[i].href = 'javascript:void(0);';
    els[i].onclick = (function(el){
        return function(){
            window.location.href = el.getAttribute('data-href');
        };
    })(els[i]);
}

而不是< a href =“...”>使用< a data-href =“...”>.

更进一步,您可以将上面的脚本更改为以下内容

for(var els = document.getElementsByTagName('a'),i = els.length; i--;){
    var href = els[i].href;
    els[i].href = 'javascript:void(0);';
    els[i].onclick = (function(el,href){
        return function(){
            window.location.href = href;
        };
    })(els[i],href);
}

这种方式链接保持不变< a href =“...”>,但如果用户禁用了JavaScript,则可以在另一个选项卡/窗口中打开链接.

原文链接:https://www.f2er.com/js/240718.html

猜你在找的JavaScript相关文章