gpt4 book ai didi

javascript - History.pushState 将不起作用

转载 作者:行者123 更新时间:2023-12-03 05:59:13 25 4
gpt4 key购买 nike

这是我的 JS。我只是在我的机器上本地运行此代码,但无法更改 URL。这有什么问题吗?

$(document).ready(function() {

$('#content').load('content/index.html');

$('ul#nav li a').click(function(e) {

href = $(this).attr("href");

$('#content').load('content/' + href + '.html');

history.pushState('', 'New URL: '+href, href);

e.preventDefault();
});
});

最佳答案

  1. 在本地声明 href,例如 const href = $(this).attr("href");var href = $(this ).attr("href");

  2. history.pushState 的第一个参数设置为 {} 而不是 ""

  3. 检查 $("ul#nav li a").attr("href") 是否为有效的 URI 字符串:控制台。 log($("ul#nav li a"), typeof $("ul#nav li a").attr("href") === "string");

+

你的问题

当您使用本地文件系统上的资源执行代码时,会出现SecurityError

发生这种情况的原因

您正在本地文件系统上执行代码(file:///)。由于Same-origin policy,它会导致SecurityError。 .

Same-origin policy for file: URIs

好像没有这方面的规范; 实现(浏览器)定义Chrome 对此有最严格的政策。第二强的是Firefox,第三强的是Opera

解决方案

您必须将它们全部放入您的网络服务器并在服务器上运行,或者,set allow-file-access-from-files flag option in Google Chrome , security.fileuri.strict_origin_policy setting for FireFox .

关于javascript - History.pushState 将不起作用,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/39814218/

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