Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/362.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 从HTML向JS函数发送一个事件加变量_Javascript_Javascript Events - Fatal编程技术网

Javascript 从HTML向JS函数发送一个事件加变量

Javascript 从HTML向JS函数发送一个事件加变量,javascript,javascript-events,Javascript,Javascript Events,我想从html代码中向JS函数发送一个鼠标事件和一个变量,我可以很好地发送事件,但问题是发送事件和一个变量。我已经包括了我正在尝试做的一个精简版本。浏览器是chrome浏览器。谁能给点建议吗 function mouseDown(e,w) { var ctrlPressed=0; var evt = navigator.appName=="Netscape" ? e:event; ctrlPressed =evt.ctrlKey; self.status="" +"ctrlKey=" +ctr

我想从html代码中向JS函数发送一个鼠标事件和一个变量,我可以很好地发送事件,但问题是发送事件和一个变量。我已经包括了我正在尝试做的一个精简版本。浏览器是chrome浏览器。谁能给点建议吗

function mouseDown(e,w) {
var ctrlPressed=0;
var evt = navigator.appName=="Netscape" ? e:event;

ctrlPressed =evt.ctrlKey;
self.status="" +"ctrlKey=" +ctrlPressed 

    if (ctrlPressed) 
    alert ("Mouse clicked with Ctrl/n and the variable is " + w )
    return true;
}

</script>
<body>

<table border = "1" >
<tr> 
<td onmousedown="mouseDown(e,\"variable\")"> Link 1 </td>
<td> Link 2 </td> 
</tr> 
</table> 
</body>`
功能鼠标向下(e、w){
var ctrlPressed=0;
var evt=navigator.appName==“Netscape”?e:event;
ctrlPressed=evt.ctrlKey;
self.status=“+”ctrlKey=“+ctrlPressed
如果(ctrlPressed)
警报(“鼠标按Ctrl/n键,变量为“+w”)
返回true;
}
链接1
链接2
`

不要使用浏览器检测。检查对象是否存在

var evt = navigator.appName=="Netscape" ? e:event; // wrong
var evt = e ? e : event;    // right
var evt = e || event;       // also right

由于事件作为第一个参数传递,您可以尝试

<td onmousedown="mouseDown(arguments[0], 'variable');"> Link 1 </td>
链接1

(我只在Safari上测试过,不保证能在其他浏览器上使用。)

有什么问题?你在其他浏览器中试过吗?你只是引号不匹配。使用
。谢谢Kenny,但这不是问题所在,只是键入此问题时出错。我保证在我的代码中它是正确的,但它不起作用。谢谢如果这是我应该回答而不是评论的真正问题:)。如果您使用
onmousedown=“mouseDown(event,'variable')”
,它将在IE和其他浏览器中工作,无需任何进一步的修复。这是因为在支持事件参数的浏览器上,第一个参数被定义为调用
event
,而在IE上,对
event
的相同引用意味着全局
窗口。当我试图通过定义var evt=e | | event为函数发送事件时,event
@kennytm没有定义错误e。