开发Instagram用户脚本修改a标签href,未点击自动跳转如何修复
问题修复方案
错误原因
你写的第二种写法存在语法逻辑错误:给onclick事件赋值时直接执行了window.open()方法,相当于把方法的执行结果赋值给了事件属性,而非将函数作为点击触发的处理程序,因此脚本加载时就会自动触发打开页面的逻辑,无需点击操作。
第一种写法仅修改了href属性,没有设置新标签打开的参数,默认会在当前页跳转,不符合需求。
修复方案
方案1:直接修改a标签原生属性(最简便,推荐)
直接利用a标签的原生属性实现需求,无需绑定额外点击事件:
// 简化选择器写法,无需分步查询 const targetLink = document.querySelector(".oJZym a"); // 增加元素存在性判断,避免页面元素未加载时脚本报错 if (targetLink) { targetLink.href = "https://instagram.com/nukl3ar_p/"; // 设置新标签页打开 targetLink.target = "_blank"; // 可选:添加安全属性,避免跨域安全风险 targetLink.rel = "noopener noreferrer"; }
方案2:正确绑定点击事件
如果需要在点击时执行更多自定义逻辑,可以用绑定事件的写法,要把window.open包裹在匿名函数内,避免直接执行:
const targetLink = document.querySelector(".oJZym a"); if (targetLink) { targetLink.onclick = function() { window.open("https://instagram.com/nukl3ar_p/", "_blank"); // 可选:添加该行可阻止a标签原有的跳转逻辑 return false; }; }
内容的提问来源于stack exchange,提问作者Error_404
相关产品推荐
相关产品推荐

