【问题标题】:Close div on all site pages when user clicks x [duplicate]当用户单击 x 时关闭所有网站页面上的 div [重复]
【发布时间】:2014-06-27 02:33:14
【问题描述】:

当用户单击“x”关闭窗口时,我需要找到正确的代码使 div 框在整个站点中消失。

作为我正在构建的新网站的一部分,我将添加警报框,这些框会在必要时出现在所有网站页面上。想想出现在每个页面顶部的“新闻提醒”或“网站维护”提醒,以便所有网站访问者都能看到。

查看示例:

当用户单击 x 时,警告框应从当前页面消失,并且在用户在此会话期间访问站点上的其他页面时不会显示。

每个警告框都通过 PHP 包含嵌入到每个页面的 HTML 中。

任何帮助将不胜感激。我在这个网站和网络上其他地方寻找解决方案的努力没有结果。谢谢。

【问题讨论】:

  • 如果这是为了在访问之间扩展,我认为 cookie 是唯一的方法。
  • 正如@Joe 所说。您将检查 cookie 并根据通知是否已设置来显示或忽略通知。您还可以使用会话,它会在您的浏览器窗口打开期间持续,然后在您下次打开它时恢复到原始状态。
  • 感谢您的反馈。非常感谢! ...浏览器会话很好。我希望用户在下次访问该站点时看到警报框,以防有新信息...有人可以指导我使用正确的代码来实现这一切吗?
  • @mbnyc 你可能想看看this;它提供了一般意义上的会话概述(解释它们是什么,如何使用它们等)。 This question 也可能对你有用。
  • @AstroCB 谢谢!我现在正在阅读它们。同样,任何为此的交钥匙解决方案都会很棒。

标签: javascript php css hide


【解决方案1】:

这是通过 ID 清除 <div> 的 JAVASCRIPT 代码:

document.getElementById('idName').innerHTML="";

例如:

<div id="toclose">This is a text</div>
<input type="button" value="Close" onClick='document.getElementById("toclose").innerHTML="";' />

对于所有会话,您应该使用 ajax 创建一个 cookie,其中包含不再显示消息的命令。

Ajax 的基本功能:

<script>function hiddiv(file) {

     var xhr = new XMLHttpRequest();
     xhr.open('GET', file);
     xhr.send(null);
}

用法(示例):

<input type="button" value="Close" onClick="hiddiv('hidediv.php?id=2');" />

对于 PHP (hidediv.php):

<?php
if(isset($_GET['id']))
{
  setcookie("blocdivid".$_GET['id'], "1", time()+3600);
}
?>

}

【讨论】:

  • JS very 的类型很差......你应该修复它。至少对我来说,我喜欢不用十分钟就能理解代码在做什么。此外,您可能应该指导 OP 大致了解如何使用 AJAX 创建 cookie。
【解决方案2】:

您可以使用 jquery 隐藏,然后为当前会话创建一个通知=是的 cookie。并在显示警报之前检查此 cookie。

您知道如何创建通知,因此您可以使用this code 在当前会话期间不显示

function getCookie(cname) {
    var name = cname + "=";
    var ca = document.cookie.split(';');
    for(var i=0; i<ca.length; i++) {
        var c = ca[i].trim();
        if (c.indexOf(name) == 0) return c.substring(name.length,c.length);
    }
    return "";
}

function clearCook(){
    document.cookie="notified=";
}

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2019-01-07
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多