首页
学习
活动
专区
工具
TVP
发布
社区首页 >问答首页 >如何实现依赖于查询字符串的弹出窗口?

如何实现依赖于查询字符串的弹出窗口?
EN

Stack Overflow用户
提问于 2019-06-27 08:41:58
回答 1查看 195关注 0票数 0

我试图用javascript添加一个弹出窗口,该弹出窗口由URL的查询字符串触发。我希望弹出窗口保持隐藏状态,除非查询字符串附加到URL。我将使用弹出窗口主要用于重定向和任何我想要显示的与重定向相关的消息。

我试着使用我之前使用过的不同函数的组合,但无法使其工作,所以我只是想知道是否有人可以检查一下并告诉我哪里出了问题。

使用查询字符串重定向将如下所示:https://www.example.com/?fromoldsite

脚本

代码语言:javascript
复制
<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

代码语言:javascript
复制
<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

代码语言:javascript
复制
<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如何,弹出窗口都会自动显示。

任何帮助都将不胜感激。

EN

回答 1

Stack Overflow用户

发布于 2019-06-27 08:56:38

此时您的弹出窗口正在显示,原因很简单,因为您还没有调用PopUp("hide");

此外,PopUp的函数定义位于计算查询字符串的if块中。将它移到if块之外的上方。

最后,只要查询字符串存在,就应该触发setTimout函数。

更正后的代码应如下所示:

代码语言:javascript
复制
<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>
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/56782555

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档