如何为<input type="image">模拟带指定坐标的click()提交表单?
问题:程序化触发图片提交按钮的指定坐标点击并提交表单
在MDN的图片类型表单示例页面中,手动点击彩色图片按钮时,URL会自动带上点击的坐标参数;但通过document.querySelector("input").click()语法触发点击时,URL里的坐标始终是x=0&y=0。我希望通过浏览器控制台或用户脚本,实现程序化点击该按钮并让URL显示指定的坐标值。
已尝试的方法
- 触发MouseEvent事件:
document.querySelector("input").dispatchEvent(new MouseEvent("click", { x: 55, // 也尝试过`offsetX`和`clientX`属性 y: 55 }));
查阅MouseEvent相关文档后得知,这些坐标属性不会移动实际光标,且该方法确实无法得到预期的坐标参数。
- 添加可穿透点击的div元素:
const newdiv = document.createElement("div"); newdiv.style.position = "fixed"; newdiv.style.height = "1px"; newdiv.style.width = "1px"; newdiv.style.top = "55px"; newdiv.style.left = "55px"; newdiv.style.pointerEvents = "none"; document.querySelector("div").prepend(newdiv); newdiv.click();
手动点击这个div可以得到正确的坐标参数,但调用.click()方法无效;将div放入input元素内部,事件冒泡后坐标仍为(0, 0)。
此外还尝试过“通过坐标获取对应元素并点击”的方案,其效果和直接调用input的click()方法一致,无法满足需求。
有评论提到这类操作可能被用于诱导广告点击,因此被浏览器限制无法实现,想问是否真的没有可行方案?目前试过的其他方案仅能模拟点击动作,无法触发表单提交并在URL中携带点击坐标参数。
内容的提问来源于stack exchange,提问作者user900901
相关产品推荐
相关产品推荐

