0

我有一个托管一些 .html 文件的服务器(实际上都是 .php,但客户端只能看到 html)。当用户输入 page1.html 时,有一个按钮可以转到 page2.html。这个按钮有 href="page2.html" 和 rel="external"。其他 4 页也是如此。

我的 localStorage 停留在第 1,2 和 3 页之间,但不在第 4 和 5 页之间。此外,如果在页面内打开一个弹出窗口(我使用 jquery mobile 的弹出窗口),在弹出窗口打开时运行的任何 javascript 我总是得到未定义的 localstorage 值条目。谷歌浏览器的元素检查器-->资源在弹出窗口打开时显示值,但 javascript 警报给出未定义。

那么:什么可能导致这种情况?我很喜欢“同源策略”(都以http://www.example.com/开头),但是某些东西必须导致其他页面没有 localStorage。

这是我的大多数页面开始的 php 代码:

<?php
$userid = mysqli_real_escape_string($connection, $_GET['userid']);
echo "<script>localStorage.userid = $userid;</script>";

$keyword = mysqli_real_escape_string($connection, $_GET['keyword']);
echo "<script>localStorage.keyword = $keyword;</script>";
?>

然后我还将进入下一页的按钮设置为包含相同的 php 查询字符串,以便下一页获得相同的变量。当然,如果 localStorage 正常工作并且我可以从它们那里获取值(并稍后对它们做一些事情),这将是不必要的。我使用谷歌浏览器的元素检查器来查看每个页面在本地存储中的内容。

4

1 回答 1

2

我在滥用 phph 和 localStorage 的组合。我有时会输入以下内容(省略 php echo):

localStorage.keyword = $关键字;

但它应该用引号引起来:

localStorage.keyword = '$keyword';

这样就解释了某些只有未定义条目的页面中的随机行为。

于 2013-04-25T04:13:03.537 回答