我有一个内联脚本,该脚本调用在外部脚本中声明的函数。不幸的是,内联脚本是在加载外部脚本之前执行的,并且会出现函数未定义的错误。
<Helmet>
<script
src="https://code.jquery.com/jquery-3.3.1.min.js"
integrity="sha256-FgpCb/KJQlLNfOu91ta32o/NMZxltwRo8QtmkMRdAu8="
crossorigin="anonymous"
/>
<script>
{`
console.log('Test', typeof $);
`}
</script>
</Helmet>
可以在这里看到问题:
https://codesandbox.io/s/l9qmrwxqzq
如果在关闭头盔标签后立即插入一些字符来刷新页面,则会突然起作用,但是在第一次加载时,该功能仍未定义。
尝试了多种方法,例如将它们都声明为头盔参数,或者将它们插入单独的头盔标签中,但是这些都不起作用。
答案 0 :(得分:0)
我删除了一些可疑字符。 现在它似乎对我有用:
<Helmet>
<script
src="https://code.jquery.com/jquery-3.3.1.min.js"
integrity="sha256-FgpCb/KJQlLNfOu91ta32o/NMZxltwRo8QtmkMRdAu8="
crossorigin="anonymous"
>
</script>
<script>
console.log('Test: ', typeof $);
</script>
</Helmet>
我猜反引号和弯曲的括号没有按照您认为的可能做。 (Usage of the backtick character (`) in JavaScript)。
或者与其他标签配合使用的“自动关闭标签”可能无法与“脚本”标签一起使用(请参见Why don't self-closing script elements work?),因此当我手动以结束脚本结束脚本时,它会有所帮助标签。