提问人:Mehul Kumar 提问时间:3/31/2023 最后编辑:freedomn-mMehul Kumar 更新时间:4/1/2023 访问量:85
使用 Javascript 从 ahref 获取 URL
Get URL from ahref using Javascript
问:
<a href="#url" data-mc-cta="1" style="display:none">Link</a>
在上面的这段代码中,广告网络javascript会生成一个随机的URL,放在标签之前a href
</head>
我正在尝试使用JS代码获取随机URL值:
var maxConvLink = document.querySelector('a[data-mc-cta="1"]');
var mcLink = maxConvLink.getAttribute("href");
alert(mcLink);
此代码放在标记之前。问题是上面的JS代码获取值而不是真正的随机URL值。</body>
#url
据我所知,Javascript 按顺序工作,因此,首先广告网络 JS 代码会将 url 放置到标签中,然后我的代码将获得值,但它并不像我想象的那样工作。a href
答:
1赞
Rajeev
3/31/2023
#1
有不同的方法可以实现输出。选择最适合您需求的一款。
使用 Window.onload
window.onload = function() {
var maxConvLink = document.querySelector('a[data-mc-cta="1"]');
var mcLink = maxConvLink.getAttribute("href");
alert(mcLink);
}
使用 jQuery 文档就绪功能
$(document).ready(function() {
var maxConvLink = document.querySelector('a[data-mc-cta="1"]');
var mcLink = maxConvLink.getAttribute("href");
alert(mcLink);
});
为了使用 jQuery 库,您需要包含它
<script src="https://code.jquery.com/jquery-3.6.0.min.js"></script>
使用 DOMContentLoaded
事件
document.addEventListener("DOMContentLoaded", function() {
var maxConvLink = document.querySelector('a[data-mc-cta="1"]');
var mcLink = maxConvLink.getAttribute("href");
alert(mcLink);
});
使用 setTimeout
:
setTimeout(function() {
var maxConvLink = document.querySelector('a[data-mc-cta="1"]');
var mcLink = maxConvLink.getAttribute("href");
alert(mcLink);
}, 1000);
使用 setInterval
:
var intervalId = setInterval(function() {
var maxConvLink = document.querySelector('a[data-mc-cta="1"]');
if (maxConvLink) {
clearInterval(intervalId);
var mcLink = maxConvLink.getAttribute("href");
alert(mcLink);
}
}, 1000);
使用 MutationObserver
var targetNode = document.querySelector('a[data-mc-cta="1"]');
var observer = new MutationObserver(function(mutations) {
mutations.forEach(function(mutation) {
if (mutation.type === "attributes" && mutation.attributeName === "href") {
var maxConvLink = mutation.target;
var mcLink = maxConvLink.getAttribute("href");
alert(mcLink);
}
});
});
observer.observe(targetNode, {
attributes: true
});
使用 IntersectionObserver
var targetNode = document.querySelector('a[data-mc-cta="1"]');
var observer = new IntersectionObserver(function(mutations) {
mutations.forEach(function(mutation) {
if (mutation.type === "attributes" && mutation.attributeName === "href") {
var maxConvLink = mutation.target;
var mcLink = maxConvLink.getAttribute("href");
alert(mcLink);
}
});
});
observer.observe(targetNode, {
attributes: true
});
使用 window.addEventListener
window.addEventListener("load", function() {
var maxConvLink = document.querySelector('a[data-mc-cta="1"]');
var mcLink = maxConvLink.getAttribute("href");
alert(mcLink);
});
评论
$(()=> { var maxConvLink... })
setTimeout(() => { ... }, 1500)