我有一个输入元素,它使用onclick
事件调用一些javascript函数,如下所示:
<input type="checkbox" name="blah" id="blah" onclick="doSomeFunction();"/>
我的问题是这个onclick
事件也被其他地方的某些供应商代码调用,例如:
$('#blah').click();
遗憾的是,我无法修改执行此元素的onclick
事件的代码,但可以修改doSomeFunction()
函数。
是否可以确定onclick
事件是通过javascript调用还是实际点击?
答案 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),
})
})
}
对象,则可以检查event
或clientX
和clientY
等属性的某些差异。
注意我以前从未这样做过,但是在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.
}
}
请注意,如果这项工作可以勾选回答。