gpt4 book ai didi

javascript - localStorage.setItem 不能存储 html 的字符串

转载 作者:行者123 更新时间:2023-11-30 17:49:54 24 4
gpt4 key购买 nike

我曾经有一个使用 GM_setValue() 的脚本从页面存储一大块 html,并将其加载到另一个页面。所以:

var data = '<div id="test">testing</div>';
GM_setValue("test", data);
alert(GM_getValue("test", "failed"));

会提醒<div id="test">testing</div> .

最近我们放弃了 GM API,转而使用 jQuery 和 HTML5,并将 GM_setValue GM_getValue 替换为如下函数:

function $setVal(name, value){
localStorage.setItem(name, value);
return false;
}
function $getVal(name, notset){
return localStorage.getItem(name) || notset;
}

现在的问题是它不能再像 GM 等价物那样存储 HTML 字符串。使用新功能后,示例脚本将发出失败警报。

我试过使用正则表达式进行转义,并使用 escape() 进行转义,但我没有运气。

有人知道该怎么办吗?

编辑:尴尬的是,这实际上似乎工作正常。只是不在我需要的范围内。我有一个文本框,在提交测试时被简单地评估为 javascript,当我从那里调用该函数时,它可以工作,但是在代码调用时会出现错误。感谢您的帮助,但它实际上似乎并不像我想象的那样是一个问题,抱歉。

最佳答案

尝试像这样转义 HTML

var html = '<div id=\"test\">testing</div>';

localStorage.setItem("Foo", html);

\放在"之前。

编辑:

我刚刚尝试了以下(在我面前打开的 Firefox 中),它工作正常:

var html = '<div id="test">testing</div>';

localStorage.setItem("Foo", html);

console.log(localStorage.getItem("Foo"));

刚刚在 Chrome 中试了一下,效果很好。

关于javascript - localStorage.setItem 不能存储 html 的字符串,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/19249905/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com