嘿,这真的很奇怪。
我将在这里给出一些代码示例:
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/