Javascript 需要一个;“本地存储”;Firefox和IE的替代品

Javascript 需要一个;“本地存储”;Firefox和IE的替代品,javascript,internet-explorer,firefox,Javascript,Internet Explorer,Firefox,我的代码使用localStorage在一个页面上保存一个值,而在另一个页面上使用。该代码在Chrome中运行良好,但在Firefox或IE中不起作用(如果设置了项,则在尝试localStorage.getItem时为空)。有人能告诉我,在Firefox和IE上,我可以做些什么来替代这种行为吗?我认为本地存储是罪魁祸首。非常感谢。以下是代码(注意:我们的网站不使用数据库): 为什么不使用一个属性并设置/取消设置它呢。这样,本地存储就没有F了。 我目前正在使用attr(“dataval”)来存储HT

我的代码使用localStorage在一个页面上保存一个值,而在另一个页面上使用。该代码在Chrome中运行良好,但在Firefox或IE中不起作用(如果设置了项,则在尝试localStorage.getItem时为空)。有人能告诉我,在Firefox和IE上,我可以做些什么来替代这种行为吗?我认为本地存储是罪魁祸首。非常感谢。以下是代码(注意:我们的网站不使用数据库):


为什么不使用一个属性并设置/取消设置它呢。这样,本地存储就没有F了。
我目前正在使用attr(“dataval”)来存储HTML下拉元素中的下拉值。由于没有办法获得最后一个下拉值,我可以使用本地存储(我不喜欢,因为我在DOM中看不到它),或者我可以使用attr。。。并以这种方式存储值。

或者如果您更喜欢JavaScript:

//这在page1.html上

   var myData = {
      'key1' : 'value1',
      'key2' : 'value2'
      };
      
       var storedData = [ MyData ];

       localStorage.setItem( 'objectToPass', storeData );

     Javascript on page2.html

     // Get the variable
      var myData = localStorage['objectToPass'];
      localStorage.removeItem( 'objectToPass' ); // Clear the localStorage
      var firstData = myData[0];
     alert('firstData: ' + firstData);
我认为这会起作用(未经测试)


D

我认为运行代码时,IE中没有设置
localStorage


LocalStorage
在8之前的IE版本中根本不起作用。此外,您是否使用
file://
协议在本地HTML文件上测试代码?它在IE中不起作用。您需要使用
http://
https://
协议来承载文件以测试代码。

什么不起作用?包括IE在内的所有浏览器都支持localStorage。请发布一个演示来重现这个问题。我在IE中测试了localStorage,它运行良好。我认为这个问题可能与代码的其他部分有关。您是否使用F12开发工具来检查控制台中是否有任何错误,以及在哪一行代码中有错误?请提供详细的错误消息,以便我们进行更多的研究。谢谢您的评论。没有错误;但是,当我从localStorage获取项目时,它是空的。更新:我可以使用cookies在Firefox上运行,但在Edge浏览器中仍然无法运行。你能告诉我如何在这里提交整个计划吗?是否有附加文件的地方,或者我是否将所有内容剪切并粘贴到邮件正文中,并在每个代码部分上方添加文件标题?谢谢。不,你不需要发布整个程序,你只需要提供可以重现问题的内容。你能在IE中设置本地存储吗?您是否在IE中添加了断点来逐行调试代码,以查看出了什么问题?此外,您如何定义
btoa()
atob()
函数?它似乎正在设置(在saveData()的最后一行,selectedItem不是null,但在colorBorder()的第一行中获取项目时),selectedItem在该行执行后为null。当然,在Chrome中,selectedItem不为null,一切正常。btoa()在base-64中编码字符串,而atob()在base-64中编码字符串解码base-64编码的字符串。我在网上发现了该代码;我没有编写函数。我认为localStorage需要这些函数。但我需要从另一个网页访问选定的html元素。请问我该怎么做?有一段时间以前我解决过同样的问题,我创建了一个隐藏的表单字段,并使用了t的名称字段,然后我将其传递给PHP。我用一个按钮完成了我的操作,但您也可以使用任何事件,只需在需要时调用它。在PHP文件中,执行一个会话开始,然后使用$POST重新分配给新var获取表单值,然后使用会话,您可以将该变量传递到另一个页面。下面是我的代码:HTML端:注册在PHP方面:希望这对我有所帮助。不幸的是,我不熟悉PHP。我想是时候熟悉它了!我将进入3所学校去理解它的语法。谢谢你,Dave,但这是我最初使用的代码。它在Chrome中运行良好,但在Firefox或IE/Edge中不起作用。我正在尝试ng寻找Firefox和IE将接受的localStorage的替代品。
   var myData = {
      'key1' : 'value1',
      'key2' : 'value2'
      };
      
       var storedData = [ MyData ];

       localStorage.setItem( 'objectToPass', storeData );

     Javascript on page2.html

     // Get the variable
      var myData = localStorage['objectToPass'];
      localStorage.removeItem( 'objectToPass' ); // Clear the localStorage
      var firstData = myData[0];
     alert('firstData: ' + firstData);