js控制链接不在新窗口中打开

本文介绍了如何通过JavaScript阻止网页中的右键菜单操作和使用shift键在新窗口中打开链接。通过设置事件监听器来阻止默认行为,实现了对用户交互的限制。

控制目的:禁止右键菜单

<script language='JavaScript'>

document.oncontextmenu=new Function('event.returnValue=false;');

document.onselectstart=new Function('event.returnValue=false;');

</script>

 

 

控制目的 :禁止shift+点击 在新窗口打开该链接

 实现方法 1: -- 禁止掉<a>元素的默认事件;用"return false" cancel了<a>元素的默认navigation事件

<a href="http://localhost:8080/BeginWeb/PersonMove.jsp" onclick="window.location = this.href; return false;">
    navigate to google</a>
    <p></p>
<a href="http://localhost:8080/BeginWeb/PersonMove.jsp" target="_blank" onclick="window.location = this.href; return false;">
    navigate to googl (_black)</a>

使用 JavaScript 在浏览器中打开新页面且不覆盖已有窗口可以使用 `window.open()` 方法。该方法用于控制弹出新的窗口,若弹出窗口不与主窗口在同一路径下,前面应写明路径,绝对路径(`http://`)和相对路径(`../`)均可,单引号和双引号都能使用,但不要混用。此段代码可加入 HTML 的任意位置,`<head>` 和 `</head>` 之间、`<body>` 和 `</body>` 之间都可以,代码位置越前越早执行,若页面代码长且想使页面早点弹出,尽量往前放。示例代码如下: ```javascript window.open('连接地址'); ``` 如果希望在窗口已存在时跳转到已有窗口,不存在则新开窗口,可以给 `window.open()` 的第二个参数 `windowName` 一个值,这样每次打开时,不会新创建浏览器标签,而是跳转到已存在的标签页。示例代码如下: ```javascript const openUrl = (dd, record) => { let _record = { objId: record.id, questionnaireId: dd.mealId, objType: dd.questionnaireType, }; switch (dd.questionnaireType) { case "A": const AUrl = `/A/Z?surveyId=${selectProject.id}&queId=${dd.id}&stkey=${record.key}`; window.open(AUrl, "uniqueWindowName"); break; case 'B': const BUrl = `/A/X?surveyId=${selectProject.id}&frekey=${record.key}`; window.open(BUrl, "uniqueWindowName"); break; } }; ``` 这里的 `"uniqueWindowName"` 是一个自定义的名称,每次打开相同名称的窗口时,会跳转到已有的窗口而不是新建窗口 [^1][^4]。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值