在safari中,右鍵點擊時好像關注上下文菜單,所以上下文菜單接收mouseup事件而不是P元素。至於解決方案,您可以檢測鼠標按鈕,以防止其右鍵單擊。除非你想處理自定義上下文菜單,否則右鍵單擊事件是凌亂的 。
如果你想MouseUp事件時,用鼠標右鍵單擊射擊在Safari工作,你將需要通過添加這個屬性P元素禁用上下文菜單:
oncontextmenu="return false">
它也有可能檢測是否單擊左側的觸發事件(這通常是要處理的按鈕):
function mouse_handler(event) {
var evt=window.event||event;
var button = evt.which || evt.button;
if (button == 1) { // if left mouse button
// handle the event
}
}
在從W3Schools的例子中,這會導致這樣的事情:
function myFunction(elmnt,clr,event)
{
var evt=window.event||event;
var button = evt.which || evt.button;
if (button == 1) { // if left mouse button
elmnt.style.color=clr;
}
}
然後通過該事件在函數調用:
<p onmousedown="myFunction(this,'red',event)" onmouseup="myFunction(this,'green',event)">
哦,不。抱歉。你誤會了我。我不想禁用onmouseup和onmousedown右鍵單擊。我想觸發Safari瀏覽器的onmouseup – Cyril 2013-04-25 06:55:11
您想讓它處理右鍵單擊的原因是否有原因? – 2013-04-25 06:56:08
我用一種處理方式更新了我的答案 – 2013-04-25 07:05:30