如何保留javascript变量,即使我重新加载或重定向到任何其他页面
how to retain javascript variables even if I reload or redirected to any other page
我创建了一个图像滑块。这个滑块出现在我网站的每一页上。有一个与图像滑块中的每个图像相关联的单击事件。在点击任何图像时,都会有一些变量存储与该图像相关的数据(比如艺术家姓名等,这些字段是隐藏的)。
点击任何图片后,页面会被重定向到另一个页面,比如艺术家页面。在艺术家页面中显示存储的数据。图像滑块也出现在艺术家页面中。
现在,问题是当我进入艺术家页面时,变量不会显示,因为js文件再次重新加载,所有数据都丢失了。两个页面的Javascript文件是相同的。事实上,我的网站中的所有页面都将使用相同的js文件。但是,在艺术家页面上,如果我点击任何图像,数据就会显示出来。我希望数据必须保留和显示,即使它被重定向到艺术家页面。
我尝试过ready()事件,但没有任何帮助。怎么做?
附言:该网站是使用Drupal 7 创建的
我假设您的数据不是在服务器端处理的。JavaScript变量数据不会在每次访问页面时都保持不变。每一页都是崭新的开始。
你应该用饼干做这个。jQuery也有cookie插件,但我还没有尝试过(试着问谷歌)。另一种方法是使用HTML5Web存储,但请注意,它是HTML5,这是一个非常新的功能。
基本上你想要做的是:
- 单击项目
- 将数据存储在cookie中
- 转到下一页
- 读取cookie中的数据
- 显示器
您不能直接使用。Javascript状态在每次页面加载时都会被清除。
选择包括:
- 与其重新加载整个页面,不如看看是否可以使用AJAX-y来替换内容
- 使用会话cookie来保持状态
- 如果浏览器支持,请使用HTML 5本地存储
有很多方法可以实现这一点,但是,在您的情况下,最简单的方法之一可能是简单地重新检索数据。第一个页面如何检索变量?您是否使用Drupal的模板引擎将它们传递给客户端?它是否通过AJAX获取原始javascript数据?
如果前者是真的,那么您可能需要修改Drupal中的模板呈现挂钩,以与第一个页面相同的方式获取数据,并将它们传递到新页面中。
如果后者是真的,只需使用jQuery的onReady重新查询数据,如您所述。您可能仍然需要使用Drupal模块将数据作为Web服务公开,以便jQuery获取,或者您可以编写自己的php页面/Drupal模块,使用Drupal的数据库抽象手动从数据库中获取数据。
- cookie加载事件页面重定向
- 在页面加载之前检查登录和重定向
- 在php中htaccess重定向url后,无法加载css和js
- 检测页面是否被重定向或直接加载(Javascript)
- 如何在通过AngularJS重定向到文章时重新加载文章内容
- 在Javascript中重定向时总是重新加载页面
- 在内容脚本中停止页面加载和重定向
- 页面加载上的加载模式&5秒后重定向
- 如何在单击按钮重定向页面时显示加载程序gif
- 在 Django 中页面重定向时显示加载
- 有没有办法重定向使用 JQuery UI 选项卡加载的内容
- 避免重定向后重新加载页面
- jQuery在设定的页面加载时间后重定向
- 重定向回 2 个页面并重新加载该页面
- XMLHttpRequest 无法加载 [url].预检响应无效(重定向)
- 使用页面重定向的文件下载上的加载指示器
- UI 路由器不断重定向到索引,并且不加载状态/视图
- 当电子版失败时,请重试加载网页
- 重置加载烬组件
- 通过重定向加载html页面以从javascript加载图像