Javascript 如果URL与JS匹配,请单击按钮
网站上有一个“立即预订”标签。当您单击它时,它将打开一个窗体。如果URL是Javascript 如果URL与JS匹配,请单击按钮,javascript,Javascript,网站上有一个“立即预订”标签。当您单击它时,它将打开一个窗体。如果URL是www.example.com/en/?emailer,我需要使按钮自动打开。我试过这个: if (window.location.href == "http://www.example/en/?emailer") { document.getElementsByClassName("tab")[0].click(); } 问题是,如果我将这段代码粘贴到控制台的页面上,它就会工作。但是,当我将它添加到header.p
www.example.com/en/?emailer
,我需要使按钮自动打开。我试过这个:
if (window.location.href == "http://www.example/en/?emailer") {
document.getElementsByClassName("tab")[0].click();
}
问题是,如果我将这段代码粘贴到控制台的页面上,它就会工作。但是,当我将它添加到header.php WordPress文件时,它不起作用
你知道为什么它在控制台而不是
中工作吗?有人能告诉我怎么做吗
注意:如代码部分所示,该选项卡具有类“tab”。事实上,问题在于,在执行脚本时,DOM树尚未完全构建。一个快速的解决方案将是一个简单的方法
setTimeout(function () {
if (window.location.href == "http://www.example/en/?emailer") {
document.getElementsByClassName("tab")[0].click();
}
}, 0);
这样,您将等待事件循环中的下一个勾号,直到DOM树设置完成。您应该使用onreadystatechange进行此操作
$(document).on('readystatechange', function() {
if (window.location.href == "http://www.example/en/?emailer") {
document.getElementsByClassName("tab")[0].click();
}
});
试试这个
jQuery(document).ready(function( $ ) {
if (window.location.href == "http://www.example/en/?emailer") {
document.getElementsByClassName("tab")[0].click();
}
});
当我将它添加到header.php WordPress文件时,它不起作用。
听起来你执行这个逻辑太早了;即,在DOM完全加载之前。我建议把它放在
标记之前,或者放在文档加载
事件句柄中。哦,我怀疑这一点,让我试试,所以这不是jQuery。@Alexiami只需将它包装在(function(){xyz})(
或DOMContentLoader
侦听器中即可。我不认为setTimeout是2018年的好做法,如果您有捕捉此类问题的特殊事件,那么我尝试了,并且出于某种原因,页面上的所有其他脚本都停止工作:/I将其添加到标题中,或者我尝试了,并且出于某种原因,页面上的所有其他脚本都停止了工作:/I将其添加到标题中。在此之前,它应该在标题和正文结尾中工作
标签。如果不起作用,请尝试检查浏览器控制台中的javascript错误。如果要在html中添加此代码,还需要在{code}
标记中添加此代码