Javascript 我想使链接仅在按下修改器时工作
我试图使我的链接只有在按下Ctrl+Shift时才能工作,否则我希望它什么也不做。但我似乎无法让它发挥作用。有什么想法吗Javascript 我想使链接仅在按下修改器时工作,javascript,keystroke,Javascript,Keystroke,我试图使我的链接只有在按下Ctrl+Shift时才能工作,否则我希望它什么也不做。但我似乎无法让它发挥作用。有什么想法吗 <html> <head> <script type="text/javascript"> function keycheck(){ if (e.ctrlKey && e.shiftKey) {; document.getElementById("hello").onclick = funct
<html>
<head>
<script type="text/javascript">
function keycheck(){
if (e.ctrlKey && e.shiftKey) {;
document.getElementById("hello").onclick = function() {
location.href='http://www.mylink.com/';
}
}
else {;
document.getElementById("hello").onclick = function() {
location.href='#';
}
}
}
</script>
</head>
<body>
<a href="#" onClick="keycheck()" id="hello">HELLO</a>
</body>
</html>
函数keycheck(){
如果(e.ctrlKey&&e.shiftKey){;
document.getElementById(“hello”).onclick=function(){
location.href=http://www.mylink.com/';
}
}
否则{;
document.getElementById(“hello”).onclick=function(){
location.href='#';
}
}
}
两件事:
on()
或click()
处理程序,您可以从中获取事件。preventDefault()
onclick
。也不能从调用的函数onclick
中单击onclick
e
,必须将其作为参数传入e
作为参数传入,您要引用事件
<script type="text/javascript">
function foo() {
console.log(event.ctrlKey);
console.log(event.shiftKey);
}
</script>
<a href="#" onclick="foo()">Foo
但是在某些浏览器中,按SHIFT键并单击可在新的浏览器窗口中打开链接的URL。我想不出一个方法来阻止它,因为它是一个浏览器设置,不能由JavaScript控制。在这种情况下,当前窗口将前进到“foo.htm”,但链接“#”将在新的浏览器窗口中打开。您是否已经加载了可以帮助您的框架或库,或者您是否正在使用纯JS?例如,jQuery事件具有shiftKey属性。这永远不会起作用,因为您正在鼠标事件中检查键事件。你也试过打开控制台窗口吗?@DieterGoetelen有可能。处理程序会在onClick处理程序中签入的文档的每个keydown、keyup事件上更新
isShfitKeyDown
标志。谢谢!这很有效。我只是把onClick放在div上,而不是链接上。不过,我想再问一个问题,“ctrlKey”是否可以翻译成mac上的CMD键?因为我的朋友在他的mac电脑上,发誓它不工作,尽管它是给我的。re:command key-
<script type="text/javascript">
function foo() {
if ( event.ctrlKey && event.shiftKey) {
window.location.href="foo.htm";
}
}
</script>
<a href="#" onclick="foo()">Foo