javascript - 从外部 .js 文件动态访问不断变化的变量

标签 javascript html

我对 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。

提前致谢,

盖伊

最佳答案

听起来您的浏览器只是检索缓存的 JavaScript 文件。确保直接转到更新的 javascript 文件 (controller.js) 并按 F5 以确保您正在加载新版本,而不是缓存的版本。否则,您的浏览器将继续将旧的缓存脚本(已定义 1111)插入您的脚本中。常见问题!

关于javascript - 从外部 .js 文件动态访问不断变化的变量,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/15066548/

相关文章:

javascript - 使用 Jquery 删除新扩展的行时自动计算表总计

javascript - `Fetch` API 被覆盖。如何访问原始功能?

javascript - 带有无限轮播的 Internet Explorer 7+8 jQuery 错误

javascript - GraphQL 突变后的 updateQueries 不适用于 Apollo 客户端

javascript - 复选框显示/隐藏不适用于 jQuery

html - CSS 布局/网格未对齐

html - div 不会为 float 内容扩展高度

css - 有没有一种方法可以使用 CSS 创建基于字符大小的布局?

java - 初始 HTML 文本字段光标位置

html - Foundation 5 显示模态不起作用