gpt4 book ai didi

JavaScript 修改一个文件中的变量并在另一个文件中读取它

转载 作者:行者123 更新时间:2023-11-30 12:08:21 25 4
gpt4 key购买 nike

有没有办法在一个函数中修改一个全局变量,然后在另一个页面中使用它?让我更好地解释一下我的情况:我有两个 HTML 文件,“Index.html”和“character.html”。在索引中,我关联了这段 JS 代码:

var pcharacter = "initialValue";

document.getElementById("barbarianClass").onclick = function(event){
event.preventDefault();
pcharacter = "barbarian"; // the important line here...
location.href = "pages/character.html";
}

元素“barbarianClass”是一个链接,这就是为什么我使用 preventDefault() 阻止默认行为,直到我为我的 pcharacter 变量赋值。现在,我有了 character.html,它附有以下一行 JS 代码:

alert(pcharacter);

在 character.html 中,我有两个相关的 JS 文件,应该如何完成:

<script type="text/javascript" src="indexCode.js"></script>
<script type="text/javascript" src="charsCode.js"></script>

问题是,当我单击“barbarianClass”链接并显示我的 character.html 页面时,警告中显示的 var pcharacter 是“initialValue”,即使我在事件中说它的值为“barbarian”在打开页面之前附加到链接。当然,我对那个变量有计划,但对于问题,警报更容易。有人可以告诉我为什么保留 initialValue 吗? JS 中是否有任何晦涩的规则说当您加载 JS 文档时,全局变量不能再更改或类似的东西?我没有任何意义......

最佳答案

Ummmmmmm...好吧....银行问题暂且不提 :-)

回答您的问题 - 答案是肯定的和否定的。如果你要做的是直接加载一个新的网页,那么不——你的全局变量将像狂欢节上的棉花糖一样消失。

但是!相反,如果您使用 jQuery 的 getScript() 函数,那么您可以加载一个新的网页并保留您的全局变量。您所要做的就是将传入的网页转换为十六进制,这样所有不同的字母(例如小于号、单引号和双引号)就不会搞砸了,一旦拥有它就取消转换,然后替换您的网页页或根据需要插入您的网页/部分。

要将其转换为十六进制,您只需使用 PHP 中的 bin2hex() 函数即可。要在 Javascript 中取消十六进制,您可以在 GitHub 上获取我的 toHex() 和 fromHex() 函数。

此外,您可能还想考虑以十六进制形式将所有内容发送回服务器,这样脚本小子们就更难给自己一个 +1000 的武器了。只是一个想法。它不会减慢他们的速度 - 但一点点帮助。 :-)

关于JavaScript 修改一个文件中的变量并在另一个文件中读取它,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/34562803/

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