我花了3天试图找出这个简单的问题。我只想让整个网站记住winversion
全局变量值,并且能够从一个函数内改变它。 (是的,我知道全局变量比darthwader更邪恶,但请这是我生命中唯一的好事)我如何从一个函数内改变一个全局变量?
我有一个HTML文件,并且当用户点击里面,我加载不同的页面从我的域名)到。
这是我的index.html(它有周围的几个div的,但我敢肯定,这无关紧要,因为其他一切作品,而JavaScript是只为这)
<script type="text/javascript" src='script.js'></script>
---------- (some inner body html , not important)----------------
<iframe id="myiframe" src="mainproblems.html" >
默认的iFrame页有这样的html代码
<a href="#" onclick="setwinver('xp')";>I have Windows XP </a>
<a href="#" onclick="setwinver('win7')";> have Windows 7/Vista </a>
我的script.js是这个
// This is supposed to be my global variable to hold windows version value
var winversion ;
// This function (I officially hate it now) is supposed to change
// winversion variable based on what user clicked on the iFrame
function setwinver(ver)
{
//so now winversion should either have xp or win7 assigned
winversion=ver;
}
但稍后,在下一个时,当我尝试在相同的JavaScript文件中读取winversion
时,它说未定义。这个navigatenow()
函数在用户选择第1页的windows版本后触发,并在下一个html页面点击链接启动msconfig描述页面(在中加载)。
function navigatenow()
{
if (winversion == "xp")
{
window.location.href=("msconfigxp.html");
}
else
{
window.location.href=("msconfig7.html");
}
}
我曾尝试:
使用/不使用
var
。使用/不使用单引号,双引号(尽管我知道没有区别)。
读了十几篇关于吊装的文章。
使用persistjs几个小时。
冥想和祈祷!
没有工作。该死的winversion
变量仍然没有定义为我存在的目的。
所有我想要的是为我的html文件记住哪个windows版本用户选择(不,我不能检测Windows版本编程,我的目的是要求用户的版本是不同的)。
任何帮助将不胜感激修复,如果不是,请建议一个合适的悬崖,我可以跳下。
您是否检查控制台是否有错误?看起来你试图在框架的上下文中调用setwinver(),而函数是在父窗口的上下文中定义的。 –
thx。但只有1个JavaScript文件和winversion和setwinver()函数都在同一个文件中:( – LePrinceDeDhump
*“请建议一个合适的悬崖,我可以跳下来。”)* lol! – Thousand