1

问题在这里解释得更清楚: 我正在使用 JavaScript 创建一个简单的随机报价生成器。我在一个名为“quotes.js”的文件中的数组中有数百个引号,然后是使它在一个名为“script.js”的文件中工作的实际函数,它们都链接到一个“index.html”页面。我在“script.js”页面中遇到错误,该页面应该允许从quotes.js 中的数组中获取随机引用,并在每次刷新页面时在屏幕上显示该随机引用(您会看到在控制台中引用而不是实际页面)。有人可以向我解释为什么会出现此错误以及如何定义变量 localQuotes 吗?

这是我在 Chrome 的开发者工具控制台选项卡中遇到的错误:

在此处输入图像描述

未捕获的 ReferenceError:localQuotes 未在 script.js:7 处的 newQuote (script.js:3) 处定义 newQuote @ script.js:3 (anonymous) @ script.js:7

这是我来自 script.js 的代码:

function newQuote() {
    const quote = localQuotes[Math.floor(Math.random() * localQuotes.length)];
    console.log(quote); 
}

newQuote(); 

这是quotes.js中数组的较短版本:

 const localQuotes = [
 {
    text: 'The greatest remedy for anger is delay.',
    author: 'Seneca',
  },
  {
    text: 'Growth itself contains the germ of happiness.',
    author: 'Pearl Buck',
  },
  {
    text: "You can do what's reasonable or you can decide what's possible.",
    author: null,
  },
];

最后是我在 html 文件中链接的 JavaScript:

<!-- Script -->
    <script>src="quotes.js"</script>
    <script src="script.js"></script>

4

2 回答 2

0

您的quotes.js 将需要提供对该变量的全局访问权限才能使其工作。你应该这样做:

window.localQuotes = {...}

哦,你的脚本标签是错误的,你有一个错字,我希望在写问题时它是一个错字,所以如果它仍然不起作用,请修复那个错字。

于 2021-11-18T07:24:32.113 回答
0

我想到了。它在 html 标签中。

代替:

<script>src="quotes.js"</script>
<script>src="script.js"</script>

它需要是:

<script src="quotes.js"></script>
<script src="script.js"></script>

解决了!

于 2021-11-19T04:58:53.327 回答