Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/php/238.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 仅在网站首页显示的弹出窗口_Javascript_Php_Html_Css - Fatal编程技术网

Javascript 仅在网站首页显示的弹出窗口

Javascript 仅在网站首页显示的弹出窗口,javascript,php,html,css,Javascript,Php,Html,Css,我有一个用php构建的网站,我在index.php文件中添加了一个弹出框 我在body标签中有一个onload方法,它在页面加载时显示弹出窗口,但在网站的每个页面上都会触发 我试图添加一个条件: if (document.URL == "mymainpage") 但是,当我进入下一页时,它似乎会被触发,当我想关闭弹出窗口时,它会再次检查url,它会更改,因此不会关闭弹出窗口 只有在用户第一次访问网站时才显示弹出窗口的最佳方法是什么 注意:我在index.php文件中使用了以下代码: <b

我有一个用php构建的网站,我在index.php文件中添加了一个弹出框

我在body标签中有一个onload方法,它在页面加载时显示弹出窗口,但在网站的每个页面上都会触发

我试图添加一个条件:

if (document.URL == "mymainpage")
但是,当我进入下一页时,它似乎会被触发,当我想关闭弹出窗口时,它会再次检查url,它会更改,因此不会关闭弹出窗口


只有在用户第一次访问网站时才显示弹出窗口的最佳方法是什么

注意:我在index.php文件中使用了以下代码:

<body<?php echo $body_attr;?>>

<?php
session_start();
$body_attr = "";
if(!isset($_SESSION["popup_shown"]))
{
    $body_attr = " onload=\"show('popupContainer')\"";
    $_SESSION["popup_shown"] = true;
}
?>
<script>

function show(id) {

       var e = document.getElementById(id);
       if(e.style.display == 'block')
          e.style.display = 'none';
       else
          e.style.display = 'block';

    }
</script>
<!-- ============== THE POPUP ======================= -->
<div id="popupContainer" style="display:block; position:fixed; top:0; left:0; background-color:rgba(0,0,0,0.7); height:100%; width:100%; z-index:999;">
    <div id="popup" style="border:2px solid white; font-size:20px; line-height:25px; text-align:center; width:75%; margin:0 auto; background-color:#18af8e; position:relative; top:35%; padding:15px; padding-bottom:0px; border-radius:20px;">
        <p style="color:white;">Din cauza perioadei foarte aglomerate si a vacantei de sarbatori, comenzile primite dupa <b>20 Decembrie</b> vor fi onorate in ianuarie. 
<br></br>
Va multumim pentru intelegere si va dorim <b>Sarbatori Fericite!</b></p>
        <button onclick="show('popupContainer')" style="display:inline; position:absolute; top:-30px; left:100%; padding:0 5px 2px 5px; border-radius:50%; border:2px solid black; background:none; font-weight:bold">x</button>
    </div>
</div>

为什么不在PHP中使用cookies

$popup = "<div class='popup'>This popup is awesome</div>";

if($_COOKIE["PopupShown"] != true){
    echo $popup;
}

setcookie("PopupShown", true);
$popup=“这个弹出窗口太棒了”;
如果($\u COOKIE[“PopupShown”!=true){
echo$弹出窗口;
}
setcookie(“PopupShown”,true);
例如

更多信息请点击此处:


更新:根据您的评论,只需更改
标签中的内容,然后:

session_start();
$body_attr = "";
if(!isset($_SESSION["popup_shown"]))
{
    $body_attr = " onload=\"show('divid')\"";
    $_SESSION["popup_shown"] = true;
}
在html中:

<body<?php echo $body_attr;?>>

在用户第一次访问网站时显示弹出窗口的最佳方法是什么?使用sessions/cookie可能是session_start();before将有助于:D@MarcoMura如果您至少不熟悉会话,这将有所帮助;)谢谢。我们不知道OP知道什么,所以我认为最好指定所需的所有代码;)@MarcoMura是的,没错。问题是我必须关闭点击x的弹出窗口。它不会工作,因为它被设置为true。我不得不等待x被点击。会话更节省,因为当人们在浏览器中禁用Cookie时,会话也可以工作(如果不是,他们也可以使用Cookie)。
<body<?php echo $body_attr;?>>