我正在编写一个供我自己使用的网站,我不打算将其置于任何公共领域。自从我为推进这个项目做了一些事情以来已经有几个月了,因此,在继续之前我必须先阅读一下。当我运行程序时出现了问题。我似乎得到了一个错误,我粘贴在下面:
Uncaught SecurityError: Blocked a frame with origin "null" from accessing a frame with origin "null". Protocols, domains, and ports must match.
我做了一些研究,它似乎是由浏览器思考引起的,我试图从iframe中读取父文档的href。虽然这就是我正在做的事情,但域名是相同的,因为我只在本地运行脚本,而且我没有访问任何互联网文件。通过我的研究,我发现这个错误与跨域脚本的安全性有关,可能存在安全风险。下面我粘贴了给我错误的行:
if (window.top.location.href.includes("/Character.html")) {
window.top.location.href = "main.html?page=Character.html";
} else if (window.top.location.href.includes("/main.html")) {
//...
上面检查的目的是,如果我不小心打开了Character.html页面,它会将我重定向到主页面并在iframe中加载字符页面。 (那样我就可以从所有页面的主页面导航整个网站) 有没有办法可以检查顶部位置而不会触发错误?我已经尝试过document.referrer但它似乎没有返回所需的值。 也许有一种方法可以做我想做的事情?
另外,我相信几个月前我在Linux上测试它时它在Linux上运行(Chrome给了我同样的错误,但我不确定是因为同样的原因)