如何通过Ctrl + click禁用打开新的浏览器选项卡

How to disable opening new browser tab by Ctrl + click

本文关键字:浏览器 选项 Ctrl 何通过 click      更新时间:2023-09-26

大家好。我有一些产品的清单。我实现了用Ctrl键选择多个产品。

$(parentSelector).on("click", function (evnt) {
                    evnt.stopImmediatePropagation();
                    var item = $(evnt.delegateTarget)
                    // TODO: clarify how to rewrite event handling
                    if (!evnt.ctrlKey && !evnt.metaKey) {
                        var selectedItems = $("#tabs .popup-body").find("a.item.selected");
                        $.each(selectedItems, function () {
                            $(this).removeClass("selected");
                        });
                    } else {
                        if (item.hasClass("selected")) {
                            item.removeClass("selected")
                        } else {
                            item.addClass("selected")
                        }
                        return false;
                    }
                });

在"else"块中产品变为选中或未选中。但是,当标签没有完全加载,Ctrl+点击打开新的标签,如何防止它?谢谢你。

也许你需要这样的东西?

   element.onclick = function(event) {
      event.preventDefault();
      //do stuff
    };

演示:http://jsbin.com/okoRorU/

HTML:

<a href="https://example.com" class="disable-ctrl-click">Users cannot open this link in new tab by Ctrl+click</a>
JavaScript(香草):

document.addEventListener('DOMContentLoaded', function() {
  var links = document.getElementsByClassName('disable-ctrl-click');
  Array.prototype.forEach.call(links, function(link) {
    link.addEventListener('click', function(event) {
      if (event.ctrlKey || event.metaKey) {
        event.preventDefault();
      }
    });
  });
});

JavaScript (with jQuery):

$(document).ready(function() {
  $('.disable-ctrl-click').click(function(event) {
    if (event.ctrlKey || event.metaKey) {
      event.preventDefault();
    }
  });
});