我对javascript(通常是c ++)非常陌生,我认为这个问题对你们所有人来说应该是非常基本的。
我有一个脚本,它获取在外部 .js 文件中定义的变量并使用警报显示它。
.html 文件中的代码如下所示。
<html>
<head>
<title></title>
<script>
function addScript(url){
var extScript = document.createElement('script');
extScript.type = 'text/javascript';
extScript.src = url;
extScript.id = 'extScript'
//If there is already a script with the ID 'extScript'
//get rid of it
var headList = document.getElementsByTagName('head');
var scriptList = headList[0].getElementsByTagName('script');
for(var i = 0; i < scriptList.length; i++)
{
if(scriptList[i].id =='extScript')
{
document.getElementsByTagName('head')[0].removeChild(scriptList[i]);
}
}
document.getElementsByTagName('head')[0].appendChild(extScript);
}
function newNewChangeMode()
{
addScript("C:/Users/Suzaku/Documents/Javascript/controller.js");
alert("Neo controllerMode variable is reading " + controllerMode);
}
</script>
</head>
<body>
<a href="javascript:newNewChangeMode()">Get externally defined mode</a>
</body>
</html>
文件“controller.js”看起来像这样。
var controllerMode = 1111;
(而已!)
当我单击“获取外部定义模式”链接时,我的 javascript 运行并且警报正确显示。显示“Neo controllerMode 变量正在读取 1111”。
但是,如果我将变量 controllerMode 的定义(在 controller.js 中)更改为
var controllerMode = 2222;
,点击保存,然后再次单击按钮(不刷新),它仍然提示“Neo controllerMode 变量正在读取 1111”。而它应该说“Neo controllerMode 变量正在读取 2222”。
看起来这个脚本不是动态添加的。我需要能够更改此变量而无需刷新 .html。
提前致谢,
盖伊