如何通过Ctrl + click禁用打开新的浏览器选项卡
How to disable opening new browser tab by Ctrl + click
大家好。我有一些产品的清单。我实现了用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();
}
});
});
相关文章:
- location.reload(true)崩溃浏览器选项卡
- 如何在现有的浏览器选项卡中打开url
- 在用户关闭/更改移动浏览器选项卡之前进行检测
- 在新的浏览器选项卡上加载新的aspx页面后调用JavaScript函数
- 询问用户何时尝试关闭浏览器选项卡
- 自动关闭或覆盖通过命令行打开的浏览器选项卡
- 在两个浏览器选项卡之间共享变量范围
- 检查具有特定标题的浏览器选项卡是否已存在
- 如何防止用户使用浏览器选项禁用脚本
- 检测通过移动 Safari 中的 JavaScript 关闭浏览器选项卡
- 当用户关闭浏览器选项卡时,如何使用 PHP 或 javascript 从我的站点注销用户
- 在单击浏览器选项卡上调用 js 函数
- 在 JavaScript 中识别浏览器选项卡的任何方法
- 如何使setInterval在浏览器选项卡处于焦点时运行
- 如何:让javascript在浏览器选项卡更改时运行
- 将键盘和鼠标事件从一个浏览器选项卡发送到另一个
- Node.js,并将数据发送回所有浏览器选项卡
- 如何设置浏览器选项卡's锚定目标名称
- 自定义Div滑块运行过快,但仅当从另一个浏览器选项卡返回时
- 有没有任何方法可以通过编程将浏览器选项卡放在前面(跨浏览器)