javascript - 将 .json 文件导入 javascript 时,我的 HTML 文件失去了从 javascript 代码调用函数的能力

标签 javascript html json

嘿,这真的很奇怪。

我将在这里给出一些代码示例:

HTML:

<body style="background-color:rgb(157, 163, 163)" onload="createData()">
    <script src="indexLIS.js"></script>
    <script src="assets/initData.json"></script>
</body>

Javascript:

//import dataSource from './assets/initData.json';
function createData(){
    console.log("hey");
}

JSON:

{
    "dataSource":[
        {
            "id": 0,
            "name":"TemporaryName",
            "node-level":0
         }
     ]
}

在代码示例中,即使如此简单,每次我打开 HTML 时,我几乎都会立即将“hey”打印到控制台。但是,如果我取消注释 javascript 代码的第一行并从 initData.json 导入数据,那么我会立即收到错误“createData not Define”,就好像 HTML 代码完全失去了与 javascript 文件通信的能力一样。

最佳答案

编辑:我刚刚意识到您正在使用上面的 es6 模块语法(对我来说它读起来就像代码注释)。您可能想查看这个问题:How to import a json file in ecmascript 6?

原始答案:

<小时/>

您无法在 script 标记中加载 json。当您这样做时,浏览器无法解析它,这会终止页面上的所有脚本执行。

如果将 initData.json 文件更改为 initData.js:

var jsonData = {
    "dataSource":[
        {
            "id": 0,
            "name":"TemporaryName",
            "node-level":0
         }
     ]
};

然后您应该能够引用全局 jsonData 变量中的数据。

关于javascript - 将 .json 文件导入 javascript 时,我的 HTML 文件失去了从 javascript 代码调用函数的能力,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/58171746/

相关文章:

javascript - 如何使用 Javascript 禁用功能键?

javascript - 根据屏幕大小更改 $scope 变量

javascript - 有没有更好的方法来测试类的各个方法

javascript - 调用 OnClick() 两次导致 OnClick 不起作用

javascript - 如何使用一张提交表单执行两个单独的操作

json - 由于对成员 jsonObject 的引用不明确,我无法编译我的 alamofire 代码。为什么?

Javascript,事件处理程序不能命名为click

javascript - 无法解决 JavaScript 性能问题

javascript - 将 JSON 中包含引号、URL 等的大型 Javascript 对象传递给 POST 调用

json - tsconfig.json : Build:No inputs were found in config file