gpt4 book ai didi

javascript - 将外部文件添加到头部 - 一个用于暂存,一个用于生产

转载 作者:行者123 更新时间:2023-12-02 17:54:25 25 4
gpt4 key购买 nike

我需要将外部 javascript 文件添加到 <head>网站的一部分 - 位于临时服务器上时一个文件,用于生产时另一个文件。

到目前为止我已经有了这个,但我收到一个错误:'return'超出函数

<script type="text/javascript">
var pathOrigin = window.location.origin;
var headtg = document.getElementsByTagName('head')[0];
if (!headtg) {
return;
}
var linktg = document.createElement('script');
if (pathOrigin.toLowerCase().indexOf("staging.server.com") >= 0) {
linktg.src = '/script-staging.js';
} else {
linktg.src = '/script-production.js';
}
headtg.appendChild(linktg);
</script>

我错过了什么?

谢谢。

最佳答案

Return - Specifies the value to be returned by a function.

这意味着您从浏览器收到的错误是正确的。您的 return 语句不是函数的一部分,而是全局范围的一部分。您要么必须跳过使用 return 语句并使用简单的变量赋值(如 @Azzy 的答案),要么将其封装在如下函数中:

function getHead() {
var headtg = document.getElementsByTagName('head')[0];
if (typeof headtg === 'undefined') {
return; // will break the function
} else {
var linktg = document.createElement('script');
if (pathOrigin.toLowerCase().indexOf("staging.server.com") >= 0) {
linktg.src = '/script-staging.js';
} else {
linktg.src = '/script-production.js';
}
headtg.appendChild(linktg);
};
};
getHead(); // don't forget to initialize the function
//or you could do:
element.onload/onclick/on<whatever_event> = getHead();

对我来说,也不清楚你想要返回什么,除非你只是想停止脚本执行;引用自 MDN:

If the expression in return [expression] is omitted, undefined is returned instead.

来源:https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Statements/return

注意:检查一下为什么使用 typeof 语句比简单的 ! 标记来检查某些内容是否存在更安全:Check if object exists in JavaScript .

编辑:对于 return 语句的非常简单的用例,您可以查看 this fiddle I made这基本上是一个计数器,当达到 100 时会输出错误。

关于javascript - 将外部文件添加到头部 - 一个用于暂存,一个用于生产,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/21090571/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com