确定是否通过javascript

时间:2017-09-24 23:46:29

标签: javascript jquery html html5

我有一个输入元素,它使用onclick事件调用一些javascript函数,如下所示:

<input type="checkbox" name="blah" id="blah" onclick="doSomeFunction();"/>

我的问题是这个onclick事件也被其他地方的某些供应商代码调用,例如:

$('#blah').click();

遗憾的是,我无法修改执行此元素的onclick事件的代码,但可以修改doSomeFunction()函数。

是否可以确定onclick事件是通过javascript调用还是实际点击?

2 个答案:

答案 0 :(得分:1)

如果您可以传递 let calls = []; for (let i = 1; i <= callPagesCount; i++) { $(pages()).find('a')[i].click() setTimeout(() => {}, 200) // Call the below, 200 ms later callsNode().map((i, el) => { calls.push({ call_condition: $(el).find('div > span').text().trim(), date: $(el).find('div').text().trim().match(/\[(.+)\]/i), }) }) } 对象,则可以检查eventclientXclientY等属性的某些差异。

注意我以前从未这样做过,但是在Firefox和Chrome中测试过它

isTrusted
function doSomeFunction(event) {
  console.log(event.isTrusted ? 'Manually clicked' : 'Clicked programatically');
  console.log('ClientX=', event.clientX)
}


$('button').click(function() {
  $('#blah').click()
})

答案 1 :(得分:-1)

这可能适合你。

<input type="checkbox" name="blah" id="blah" onclick="doSomeFunction('blahClick');"/>

function doSomeFunction(text){
  if (text == "blahClick") {
   //run your code. 
  }
}

请注意,如果这项工作可以勾选回答。