【发布时间】:2017-07-13 17:05:50
【问题描述】:
页面加载后,我需要将外部 js 文件加载到 html 文件中。这是因为在这个外部 js 文件中,变量仅在 html 文件加载后才更新。 话虽如此,我之后还需要使用函数 showScreen 。 showScreen 是外部 js 文件中的布尔值。
我只希望它在 showscreen 为 true 时切换屏幕,并且只能在 html 文件加载后加载。所以现在如果我在 html 中做了 window.onload = showScreen,它总是未定义的
external.js(这是外部文件的一部分,也是我尝试使用的函数)
function showScreen(showTraditionalScreen) {
console.log("showTraditionalScreen "+ showTraditionalScreen);
return showTraditionalScreen;
}
更新:
index.html(这是我要进行更改的文件的下半部分)
<script src="js/main.js"></script>
<script src="js/additions.js"></script>
<script src="../server/webcam.js" defer></script>
<script>
if(window.onload =showScreen)
window.location.href = "traditional.html";
}
</script>
</body>
</html>
它目前没有做任何事情,但关键是,当 showScreen 为 true 时,页面将更改为 traditional.html。目前它没有这样做
这个文件也是异步的,所以console.log继续打印真假
我知道 ajax 是一个不错的选择,我一直在尝试,但我还是有点迷茫。
页面加载后如何在 html 文件中使用 external.js 函数? 为什么我的文件目前不允许我使用 showscreen?
【问题讨论】:
-
你试过
window.onload或$(document).ready如果使用jquery吗? -
我不能使用这些,因为页面需要先加载
-
这就是使用它们的意义所在。他们告诉其中的 javascript 等到页面加载后才执行。
-
我应该更清楚,但是,我只希望它在 showscreen 为真时切换屏幕,并且只能在 html 文件加载后加载。所以它不适用于我的目的,因为 window.onload = showScreen 总是未定义
-
我认为我明白你在说什么。您尝试
window.onload = showScreen的方式,方法定义已经运行,我认为它返回未定义,因为它已经检查了有问题的元素,但在页面加载之前它不存在。我建议将函数定义本身包装在window.onload中,这样您就不会在知道它在屏幕上之前查找该元素。
标签: javascript html