为左键或右键单击附加事件侦听器 - onclick 不适用于右键单击

Attaching an event listener for left or right click - onclick doesn't work for right click

我目前正在申请实习Internship Link

我立即注意到的一件事是,当您点击上传求职信或粘贴求职信时,您会被重定向到工作邀请网站的主页 Job Invite,遗憾的是您不能'上传你的求职信。另一方面,上传简历工作得很好,但粘贴简历也有同样的问题。
有谁知道如何解决这个问题并能够提交求职信?

我不是网络大师,但由于我正在申请一个工程职位,所以我正在努力寻找解决这个问题的方法。我右键单击了上传求职信 link 并使用检查元素工具检查了 link。我发现这个函数

onclick="jvAddAttachment2('jvcoverletter', 'qLY9Vfwx')

单击按钮时将被调用。现在进入 html 页面的 JavaScript 文件,Inspect Element -> Sources -> *careers_8.js?v=303,我尝试做一个基本的警报语句,从 alert dialog,进行一些调试以查看问题所在。现在是代码

function jvAddAttachment2(id, companyId){
    alert("I got here");
    ....
}

然后我做了 control s 并且 Inspect Element 控制台输出了 "Recompilation and update succeeded." 所以我假设 JavaScript 文件已经更新。但是,当我单击 link(通过右键单击,打开新的 window)时,没有显示警告框。
有谁知道如何显示警告对话框?我想我已经尽可能多地利用我从一门网络开发课程中获得的工作知识哈哈。

确保在末尾用 ":

结束您的 onclick 字符串
onclick="jvAddAttachment2('jvcoverletter', 'qLY9Vfwx')"

左键单击而不是右键单击。

您正在寻找 contextmenu 右键单击​​事件:

element.addEventListener('contextmenu', function() {
  // code here
});

请不要使用内联 js,例如 onclick 在您的 html 中。上面的示例是附加事件侦听器的正确方法。

您应该在 javascript 中使用 var myElem = document.getElementById('the-id') 或类似 document.querySelector 等类似函数获取元素参考

然后,您可以像这样轻松地附加两个事件:

// left click
myElem.addEventListener('click', myFn);
// right click
myElem.addEventListener('contextmenu', myFn);

如果您坚持使用内联 js 执行此操作,那将是:

<div onclick="myFn()" oncontextmenu="myFn()"></div>

两种方法的完整演示:

var myElem = document.getElementById('my-element');
myElem.addEventListener('click', myClickFn);
myElem.addEventListener('contextmenu', myClickFn);

function myClickFn() {
  console.log('this is myClickFn!');  
}

function someFn() {
  console.log('this is someFn!');  
}
<div id="my-element" onclick="someFn()" oncontextmenu="someFn()">Left or Right click me!</div>

此外,由于您希望将参数传递给您将在点击时调用的函数,因此最好为事件使用一个中间函数,并让该函数调用另一个函数,传递参数,像这样:

function myClickFn() { // this is called on click
  myOtherFunction('some', 'params');
}

这避免了您必须重复相同的函数调用,在两个地方传递相同的参数。

 onclick="jvAddAttachment2('jvcoverletter', 'qLY9Vfwx')"

我认为没有双引号。

demo