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