我试图用javascript添加一个弹出窗口,该弹出窗口由URL的查询字符串触发。我希望弹出窗口保持隐藏状态,除非查询字符串附加到URL。我将使用弹出窗口主要用于重定向和任何我想要显示的与重定向相关的消息。
我试着使用我之前使用过的不同函数的组合,但无法使其工作,所以我只是想知道是否有人可以检查一下并告诉我哪里出了问题。
使用查询字符串重定向将如下所示:https://www.example.com/?fromoldsite
脚本
<script>
var fromOldURL = window.location.href;
if (fromOldURL.indexOf('fromoldsite') !== -1) {
function PopUp(hideOrshow) {
if (hideOrshow == 'hide') document.getElementById('redirectPopUp').style.display = "none";
else document.getElementById('redirectPopUp').removeAttribute('style');
window.onload = function () {
setTimeout(function () {
PopUp('show');
}, 3000);
}
}
}
</script>
CSS
<style>
#redirectPopUp {
position: fixed;
top: 0;
left: 0;
width: 100%;
height: 100%;
background: rgba(0,0,0,.6);
z-index: 1001; }
#popUpContent{
padding: 100px;
width: 50%;
height: 50%;
background-color: #FFF;
background-size: cover
position: relative;
margin: 200px auto; }
</style>
HTML
<div id="redirectPopUp">
<div id="popUpContent">
<h2>Popup Content Here</h2>
<h6>Popup Message Here</h6>
<input type="submit" name="submit" value="Submit" onClick="PopUp('hide')" />
</div>
</div>
我想弹出显示时,只有当网址包含"fromoldsite“,并在3秒后弹出。目前,无论URL如何,弹出窗口都会自动显示。
任何帮助都将不胜感激。
发布于 2019-06-27 08:56:38
此时您的弹出窗口正在显示,原因很简单,因为您还没有调用PopUp("hide");
。
此外,PopUp的函数定义位于计算查询字符串的if块中。将它移到if块之外的上方。
最后,只要查询字符串存在,就应该触发setTimout函数。
更正后的代码应如下所示:
<script>
function PopUp(hideOrshow) {
if (hideOrshow == 'hide')
document.getElementById('redirectPopUp').style.display = "none";
else
document.getElementById('redirectPopUp').removeAttribute('style');
}
var fromOldURL = window.location.href;
if (fromOldURL.indexOf('fromoldsite') !== -1) {
setTimeout(function() {
PopUp('show');
}, 3000);
}
PopUp("hide");
</script>
https://stackoverflow.com/questions/56782555
复制相似问题