JavaScript-javascript链接,右键点击之后,如何使“新窗口打开”选项可用?

发布于 2017-02-13 14:04:23 字数 362 浏览 1212 评论 2

我很慎重的查找了相关内容,是没有找到解决的办法。

我要实现一个功能,点击链接运行一段js代码。而右键单击这条连接的时候可以右键选择在新窗口中打开,当然,直接点击的话还是直接在本窗口中打开。
如下:

<form id="tr1" method="post" action="<%=basePath%>action/tcs-server!clickTcsServerMethod.action">
<tr>
<td><a href="javascript:formSubmit('tr1')">Tcs Server 1 </a></td>
</tr>

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(2

甜柠檬 2017-06-14 13:51:40

楼上理解错误,楼主的意思好像是点击右键时把弹出的菜单窗口中的“新打开窗口”屏蔽掉!javascript好像无权直接干掉浏览器本身的东西!只能间接实现,提供2个方法
第一是屏蔽右键事件,下面给个例子代码:

 <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN">
<HTML>
<HEAD>
<TITLE> New Document </TITLE>
<META NAME="Generator" CONTENT="EditPlus">
<META NAME="Author" CONTENT="">
<META NAME="Keywords" CONTENT="">
<META NAME="Description" CONTENT="">
<SCRIPT LANGUAGE="JavaScript">
<!--

var clickmessage="禁止右键打开新窗口! ";

function disableclick(e) {
if (document.all) {
if (event.button==2||event.button==3) {
if (event.srcElement.tagName=="A"){
alert(clickmessage);
return false;
}
}
}
else if (document.layers) {
if (e.which == 3) {
alert(clickmessage);
return false;
}
}
else if (document.getElementById){
if (e.which==3&&e.target.tagName=="A"){
alert(clickmessage);
return false;
}
}
}

function associatelinks(){
for(i=0;i<document.links.length;i++)
document.links[i].onmousedown=disableclick;
}

if (document.all)
document.onmousedown=disableclick
else if (document.getElementById)
document.onmouseup=disableclick
else if (document.layers)
associatelinks();

function formSubmit(obj) {
document.getElementById(obj).submit();
}
//-->
</SCRIPT>
</HEAD>

<BODY>
<form id="tr1" method="post" action="">
<tr>
<td><a href="javascript:formSubmit('tr1');">Tcs Server 1 </a></td>
</tr>
</BODY>
</HTML>

上面是把右键事件屏蔽掉了,如果楼主无法忍受这种办法,那还有另一个办法就是模拟浏览器右键弹出菜单窗口,这个不给代码,给个jquery插件实现的文档,自己去研究一下:
jQuery ContextMenu Plugin

浮生未歇 2017-03-19 09:58:58

右键选择有点难实现,可以加两个按钮,一个是本地打开,一个是新窗口打开。在新窗口打开的按钮上加上form.target = "_blank";的代码就行了。注意DOCTYPE设置为Strict的页面会失效。
HTML5下面还可以直接设置formtarget属性来重写target设置:

 <form action="sompage">
<div><button type="submit">本页提交</button></div>
<div><button type="submit" formtarget="_blank">新页面提交</button></div>
</form>

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文