如何使用JavaScript调用已有的onclick函数
解决按钮点击事件调用失败的问题
你的代码无效是因为Shopify的按钮并非通过原生onclick属性绑定点击逻辑,而是用addEventListener添加的事件监听,所以直接调用onclick()不会触发对应的模态框逻辑。
试试用以下方法模拟真实点击:
// 获取所有目标按钮 const buttons = document.querySelectorAll(".shopify-buy__btn"); buttons.forEach(button => { // 触发原生点击事件,模拟用户真实点击 button.dispatchEvent(new MouseEvent('click', { bubbles: true, cancelable: true, view: window })); });
或者更简洁的方式,直接调用元素的原生click()方法(会触发所有绑定的点击事件):
const buttons = document.getElementsByClassName("shopify-buy__btn"); for (let i = 0; i < buttons.length; i++) { buttons[i].click(); }
关键说明
element.click()是浏览器提供的原生方法,会完整模拟用户点击行为,触发所有通过addEventListener或onclick绑定的事件。- 你之前的代码只检查了
onclick属性,忽略了用事件监听绑定的逻辑,所以无法触发模态框。
内容的提问来源于stack exchange,提问作者Crelloc
相关产品推荐
相关产品推荐

