Javascript - 从 link 获取 GET 参数并阻止打开
Javascript - Get GET parameter from link and prevent opening
我想阻止打开指向特定域的 links,但存储包含的 GET 参数以使用 Javascript 调用另一个函数。
示例 link:http://sub.example.com/?service=address&id=23
因此我现在有这个:
[].forEach.call(document.querySelectorAll("a[href*='sub.example.com'"), function(a){
a.setAttribute('onclick', '
var url = new URL(this.href);
var service = url.searchParams.get("service");
console.log(service);
return false;
')
})
我认为它与 URL 对象的创建有关,但不幸的是,我在 Edge DevTools 中没有收到任何错误消息。我在控制台上没有得到任何输出,并且 link 仍然打开,return false;
也没有达到。
有人可以给我提示吗?
提前致谢。
用单引号或双引号分隔的字符串中不能有换行符。更好的做法是使用 addEventListener
and event.preventDefault
代替。
[].forEach.call(document.querySelectorAll("a[href*='sub.example.com'"), function(a) {
a.addEventListener('click', function(e) {
e.preventDefault();
var url = new URL(this.href);
var service = url.searchParams.get("service");
console.log(service);
});
})
<a href="http://sub.example.com/?service=address&id=23">Link</a>
我想阻止打开指向特定域的 links,但存储包含的 GET 参数以使用 Javascript 调用另一个函数。
示例 link:http://sub.example.com/?service=address&id=23
因此我现在有这个:
[].forEach.call(document.querySelectorAll("a[href*='sub.example.com'"), function(a){
a.setAttribute('onclick', '
var url = new URL(this.href);
var service = url.searchParams.get("service");
console.log(service);
return false;
')
})
我认为它与 URL 对象的创建有关,但不幸的是,我在 Edge DevTools 中没有收到任何错误消息。我在控制台上没有得到任何输出,并且 link 仍然打开,return false;
也没有达到。
有人可以给我提示吗? 提前致谢。
用单引号或双引号分隔的字符串中不能有换行符。更好的做法是使用 addEventListener
and event.preventDefault
代替。
[].forEach.call(document.querySelectorAll("a[href*='sub.example.com'"), function(a) {
a.addEventListener('click', function(e) {
e.preventDefault();
var url = new URL(this.href);
var service = url.searchParams.get("service");
console.log(service);
});
})
<a href="http://sub.example.com/?service=address&id=23">Link</a>