多年来想问的一个问题,不知道有没有人知道?技术死角,共同发掘!

时间:2021-05-25 20:57:31
标题大了...

<script language=JavaScript>
function disablekey()
{
   if((window.event.shiftKey)&&(window.event.srcElement.tagName=="A"))
   {event.returnValue=false;}
}
</script>
<body onkeydown="disablekey()">

这段代码无法在表单中实现"shift+左键"屏蔽的功能,怎么办?你们遇到过吗?

25 个解决方案

#1


up

#2


up

#3


那是因为你window.event.srcElement.tagName=="A"的缘故,请尝试如下代码:
<!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>
function disablekey()
{
   if((window.event.shiftKey)&&(window.event.srcElement.tagName=="TEXTAREA"))   
   {
   event.returnValue=false;
   }
}
</script>
<body onkeydown="disablekey()">
</HEAD>
<TEXTAREA NAME="" ROWS="" COLS=""></TEXTAREA>
<BODY>

</BODY>
</HTML>

#4


帮你顶

#5


mark

#6


up

#7


up

#8


顶(作个记号)

#9


对不起,我没说清楚,
我要屏蔽的对象是<a>,不是<textarea>的选择文本效果.

如果是<a>,我这样写应该没有错啊,
为什么老是达不到目的呢?
请指教!

#10


有谁知道如何可以禁用shift+左键 点击链接打开新窗口的功能吗??
想了解的请帮顶.

#11


up

#12


可以告诉我吗???

#13


up

#14


收藏

#15


up

#16


MARK

#17


mark

#18


我真的很需要一个可以屏蔽shift+左键屏蔽弹出窗口的方法,
谁有好的方法?

#19


就算这样禁用了,你还是没办法禁用右键菜单中的在新窗口中打开连接,没法禁用非IE浏览器的始终在新窗口中打开的功能。


再说,这个问题实在是太好解决了,以至于没人去研究怎么屏蔽超级链接的这个功能,而是直接弄一个假的超级链接放在那里:<span style="cursor: hand;" onclick="window.location=1.htm">

#20


可以禁用右键菜单打开新窗口啊........
但是我觉得楼上的说的很对,
js的屏蔽功能写的再好,被人禁用客户端脚本也就失效了.
但是js还是要用的,至少有一定的屏蔽作用.

顺便说下,你让我用的<span>方法,我用不了,因为我的<a>是放在一个框架(frame)中,
跳转的目标是另外一个框架(frame),如果我用了window.location,就没办法让
点击的页面在另外一个框架中打开了,
期望你的解决办法!

#21


parent指当前框架的父框架,frames["name"]指子框架。自己多试几次吧:

例如,在一个框架中引用另一个同级的框架:

parent.frames["main"].form1.text1.value = "aaa";
parent.frames["main"].location="1.htm";

frames["name"]里面的name指<frame name="xxxx">中的xxxx。


另外说一下,window.location这个也是JS,如果完全屏蔽JS,这个也用不了,但是一般不会完全屏蔽JS,只是有选择性的屏蔽弹窗等(完全屏蔽JS估计没几个网站能看了)。屏蔽右键菜单不是解决方案,只是多个事出来,影响了正常的功能,还不说并不是所有的浏览器都支持你的屏蔽右键的脚本。

#22


谢谢楼上!
这个问题算是有解决办法了!

但是我的这个web应用程序中的所有链接都要用<span>来完成了,
我有点不想这样....
有没有可以用在<a>上的方法?

#23


学习

#24


换思路吧,例如页面发现自己不在框架里面就自行关闭。。。。

#25


mark

#1


up

#2


up

#3


那是因为你window.event.srcElement.tagName=="A"的缘故,请尝试如下代码:
<!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>
function disablekey()
{
   if((window.event.shiftKey)&&(window.event.srcElement.tagName=="TEXTAREA"))   
   {
   event.returnValue=false;
   }
}
</script>
<body onkeydown="disablekey()">
</HEAD>
<TEXTAREA NAME="" ROWS="" COLS=""></TEXTAREA>
<BODY>

</BODY>
</HTML>

#4


帮你顶

#5


mark

#6


up

#7


up

#8


顶(作个记号)

#9


对不起,我没说清楚,
我要屏蔽的对象是<a>,不是<textarea>的选择文本效果.

如果是<a>,我这样写应该没有错啊,
为什么老是达不到目的呢?
请指教!

#10


有谁知道如何可以禁用shift+左键 点击链接打开新窗口的功能吗??
想了解的请帮顶.

#11


up

#12


可以告诉我吗???

#13


up

#14


收藏

#15


up

#16


MARK

#17


mark

#18


我真的很需要一个可以屏蔽shift+左键屏蔽弹出窗口的方法,
谁有好的方法?

#19


就算这样禁用了,你还是没办法禁用右键菜单中的在新窗口中打开连接,没法禁用非IE浏览器的始终在新窗口中打开的功能。


再说,这个问题实在是太好解决了,以至于没人去研究怎么屏蔽超级链接的这个功能,而是直接弄一个假的超级链接放在那里:<span style="cursor: hand;" onclick="window.location=1.htm">

#20


可以禁用右键菜单打开新窗口啊........
但是我觉得楼上的说的很对,
js的屏蔽功能写的再好,被人禁用客户端脚本也就失效了.
但是js还是要用的,至少有一定的屏蔽作用.

顺便说下,你让我用的<span>方法,我用不了,因为我的<a>是放在一个框架(frame)中,
跳转的目标是另外一个框架(frame),如果我用了window.location,就没办法让
点击的页面在另外一个框架中打开了,
期望你的解决办法!

#21


parent指当前框架的父框架,frames["name"]指子框架。自己多试几次吧:

例如,在一个框架中引用另一个同级的框架:

parent.frames["main"].form1.text1.value = "aaa";
parent.frames["main"].location="1.htm";

frames["name"]里面的name指<frame name="xxxx">中的xxxx。


另外说一下,window.location这个也是JS,如果完全屏蔽JS,这个也用不了,但是一般不会完全屏蔽JS,只是有选择性的屏蔽弹窗等(完全屏蔽JS估计没几个网站能看了)。屏蔽右键菜单不是解决方案,只是多个事出来,影响了正常的功能,还不说并不是所有的浏览器都支持你的屏蔽右键的脚本。

#22


谢谢楼上!
这个问题算是有解决办法了!

但是我的这个web应用程序中的所有链接都要用<span>来完成了,
我有点不想这样....
有没有可以用在<a>上的方法?

#23


学习

#24


换思路吧,例如页面发现自己不在框架里面就自行关闭。。。。

#25


mark