Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/405.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 在PHP中向主体添加类并将其保留在会话中_Javascript_Php_Jquery_Wordpress_Session - Fatal编程技术网

Javascript 在PHP中向主体添加类并将其保留在会话中

Javascript 在PHP中向主体添加类并将其保留在会话中,javascript,php,jquery,wordpress,session,Javascript,Php,Jquery,Wordpress,Session,我一直试图自己解决这个问题,但我似乎无法解决它 我正在一个客户端站点上构建一个可访问性部分,我有两个按钮,这些按钮向主体添加了一个类,一个是font size,另一个是greyscale 我需要将这些类保留在主体上,直到再次单击以删除,因为用户不希望一直单击按钮才能看到站点 我想用会话或cookie存储这些类,但在阅读了一些内容之后,会话还是会存储cookie,所以无论哪个选项是最好的 我正在使用wordpress网站,所以如果有什么我可以在功能方面使用的东西,那就很有用了 有人能帮我吗?如中所

我一直试图自己解决这个问题,但我似乎无法解决它

我正在一个客户端站点上构建一个可访问性部分,我有两个按钮,这些按钮向主体添加了一个类,一个是
font size
,另一个是
greyscale

我需要将这些类保留在主体上,直到再次单击以删除,因为用户不希望一直单击按钮才能看到站点

我想用会话或cookie存储这些类,但在阅读了一些内容之后,会话还是会存储cookie,所以无论哪个选项是最好的

我正在使用wordpress网站,所以如果有什么我可以在功能方面使用的东西,那就很有用了

有人能帮我吗?

如中所述:

主要区别在于会话数据存储在服务器上,而cookie数据存储在客户机上。因此,客户机可以轻松地修改cookie内容,但修改会话内容必须更加努力


会话通常使用cookie,但数据存储在服务器端,cookie仅用于识别它

假设你们并没有理由知道用户是否在服务器端使用灰度,你们可以完全用JS来完成

例如,为cookies使用一些整洁的jQuery插件


另外,请记住,此cookie将被发送到服务器,并一次又一次地返回,所以如果您在服务器端不需要此cookie,您应该使用一些更现代的解决方案,如HTML5 localStorage。很少有库可以用来在客户端保存数据。他们使用现代功能,并在旧浏览器上使用旧功能(如cookie)。例如,请检查。

有几种方法可以实现这一点

1)将信息保存在$\u会话中

2)将信息保存在cookie中

基于您的案例和您想要存储的数据(这些数据并不重要),我建议您将其存储在cookie中,而不要麻烦服务器跟踪每个用户

您可以通过javascript轻松地将信息存储在cookie中

以下是一个javascript cookie参考:

在将信息存储在cookie中之后,您可以通过javascript或php检索存储在cookie中的信息。 请记住: Javascript=客户端(服务器不会被打扰)&在您的dom准备好之后,您必须根据您的主体添加相应的类。 PHP=服务器端,这意味着您不必在dom就绪后添加类,并使用元素上已设置的适当类打印html

PHP cookie参考:

把它放在饼干里

使用cookie您可以选择cookie何时过期,使用会话时-会话被破坏时信息丢失,例如用户注销时


用户必须手动删除cookie以删除“正文类信息”

如果要使用localStorage,则可以使用此代码

// Check if localStorage is supported
if ('localStorage' in window && typeof localStorage == 'object') {
  $(document).ready(function() {
    // Set the class if greyscale is set
    // Note that localStorage saves everything as strings
    if (localStorage["greyscale"] == "1") {
      $('body').addClass('greyscale');
    }
    // Register click listener for the button
    $('#button').click(function() {
      // Toggle greyscale on and off
      if (localStorage["greyscale"] != "1") {
        $('body').addClass('greyscale');
        localStorage["greyscale"] = "1";
      }
      else {
        $('body').removeClass('greyscale');
        localStorage["greyscale"] = "0";
      }
    }); // - button click
  }); // - doc ready
}

为解释这两者之间的区别干杯,存储的所有内容都是“是”或“否”,这将打开或关闭类,因此,如果用户希望自己更改,他们可以自行更改;)Cookies是通往Go的途径请不要使用w3schools作为参考,请参阅以获取解释,为什么不在教育材料中参考此网站。我不知道此网站,并且在开始时w3schools帮助了我。我当时没有遇到任何问题。js_Cookies.asp链接上的示例代码包含许多错误。而且代码通常是错误的做法,甚至没有正确的格式。看最后一个例子,他们在HTML中使用JavaScript,没有
标记,。。它不会工作。我目前正在使用jQuery.Cookie使用类似的东西,但是,它似乎在添加和删除Cookie方面有问题。如何在单击时删除cookie并确保刷新时不会改变这些状态?请查看您正在使用的插件的文档。有了这个,你可以做$.removeCookie('greyscale');删除cookie。另外,请查看Firefox firebug或chromium开发者工具“cookies”选项卡,测试浏览器中实际发生的情况。是的,我对此很感兴趣,只是在添加和删除cookies时遇到了一些问题,$.removeCookie通常不喜欢删除cookie以删除Classic如果您遇到问题,您可以尝试将cookie设置为false,而不是删除它以查看问题所在。$。曲奇(“灰度”,假);你推荐一个后备队员吗?不过,检查过之后,它似乎得到了足够好的支持,不需要一个……如果您愿意,您可以进行回退。这取决于你想提供多大程度的支持。我不推荐它,因为我认为这是一个很大的工作,以满足一个非常小的百分比的用户(如果有的话)。这是为了可访问性,它工作回到IE8,但不是在歌剧,所以我希望慈善机构和视力受损的人有最新的电脑。老年人也是。
// Check if localStorage is supported
if ('localStorage' in window && typeof localStorage == 'object') {
  $(document).ready(function() {
    // Set the class if greyscale is set
    // Note that localStorage saves everything as strings
    if (localStorage["greyscale"] == "1") {
      $('body').addClass('greyscale');
    }
    // Register click listener for the button
    $('#button').click(function() {
      // Toggle greyscale on and off
      if (localStorage["greyscale"] != "1") {
        $('body').addClass('greyscale');
        localStorage["greyscale"] = "1";
      }
      else {
        $('body').removeClass('greyscale');
        localStorage["greyscale"] = "0";
      }
    }); // - button click
  }); // - doc ready
}