在<script>中调用内容或使用JavaScript
Calling things in <script> or using JavaScript?
我一直在看很多不同的教程,学习我一直在做的编码,我注意到一个共同的区别。基本上,有些人纯粹使用 HTML 来编写脚本,使用脚本标签,有些人使用 JavaScript 并引用脚本。我的问题在于两个代码。第一个:
<!DOCTYPE html>
<html>
<head>
<script src='babylon.js'></script>
<title>game or some shit</title>
<meta charset="utf-8">
<style>
.canvas {
height: 100%;
width: 100%;
padding:0;
margin:0;
overflow: hidden;
}
</style>
</head>
<body>
<canvas id='gamecanvas'></canvas>
<script>
var BABYLON;
var canvas = document.getElementById('gamecanvas');
var engine = new BABYLON.Engine(canvas, true);
var scene = new BABYLON.Scene(engine);
var camera = new BABYLON.ArcRotateCamera('camera', 1,2,20, new BABYLON.Vector3(0,0,0), scene);
var light = new BABYLON.PointLight('light', new BABYLON.Vector3(0,0,10), scene);
var ball = new BABYLON.Mesh.CreateSphere('ball', 10, 1.0, scene);
scene.activeCamera.attachControl(canvas);
engine.runRenderLoop(function()
{
scene.render();
});
canvas.height = window.innerHeight;
canvas.width = window.innerWidth;
</script>
</body>
</html>
功能正常,但是当我使用如下所示的外部脚本在脚本中引用它时:
var BABYLON;
var canvas = document.getElementById('gameCanvas');
var engine = new BABYLON.Engine(canvas, true);
var scene = new BABYLON.Scene(engine);
var camera = new BABYLON.ArcRotateCamera('camera', 1,2,20, new BABYLON.Vector3(0,0,0), scene);
var light = new BABYLON.PointLight('light', new BABYLON.Vector3(0,0,10), scene);
var ball = new BABYLON.Mesh.CreateSphere('ball', 10, 1.0, scene);
function INIT_GAME()
{
canvas.height = window.innerHeight;
canvas.width = window.innerWidth;
scene.activeCamera.attachControl(canvas);
engine.runRenderLoop(function()
{
scene.render();
});
}
并在 HTML 中调用它
<!DOCTYPE html>
<html>
<head>
<script src='jquery2.2.2.min.js'></script>
<script src='game.js'></script>
<script src='jquery.js'></script>
<script src='babylon.js'></script>
<title>beta af lmaoo</title>
<meta charset="utf-8">
<style>
.background {
position: absolute;
height: 100%;
width: 100%;
top: 0px;
left: 0px;
}
.start {
position:absolute;
bottom:21%;
right:40%;
}
.canvas {
height: 100%;
width: 100%;
padding:0;
margin:0;
overflow: hidden;
}
</style>
</head>
<body>
<canvas id='gameCanvas'></canvas>
<menu>
<img class='background' src='Images/backgroundImg.jpg'/>
<embed src='Audio/backgroundMusic.mp3' autoplay='true' loop='true' width='0' height='0'/>
<input class='start' type='image' src='Images/start.jpg' width='275' height='150' onclick='INIT_GAME();'/>
</menu>
</body>
</html>
它不起作用。谁能告诉我为什么当我在另一个 JavaScript 文件中外部键入脚本并调用它时脚本不起作用,但它会在原版 HTML 中?另外,您更喜欢使用哪个?使用<script>
更好还是使用 JavaScript 文件更好?
您错误地识别了问题。这与将脚本从内联文件移动到外部文件无关。
您还(更重要的是(将脚本元素从下方gameCanvas
移动到其上方。
现在,当你说var canvas = document.getElementById('gamecanvas');
时,你会得到null
(因为元素还不存在(。
(看起来你已经把它移到了巴比伦.js之前,所以你也会出错,因为BABYLON.Engine
还不存在(。
扩展@Quentin提到的内容。
<script src='jquery2.2.2.min.js'></script>
<script src='game.js'></script>
<script src='jquery.js'></script>
<script src='babylon.js'></script>
这些脚本标签的放置位置很重要,顺序也很重要。当它们处于"HEAD"中时,它们将在渲染过程的早期执行。您的 HTML 是自上而下呈现的,每个脚本在调用时执行。如果您不想担心 DOM(BODY
标签中的所有内容(尚未准备就绪,则需要将所有脚本标签放在 HTML BODY
的底部,就在结束</body>
之前。此外,如果它们在此时无法正常工作,请确保它们按顺序排列。从您的原始内容来看,上面的列表不正确,因为您需要在游戏前拥有巴比伦.js.js最有可能。
另外作为旁注:不要多次导入jQuery,因为这可能会有问题。
以下是我加载 JavaScript 的方式...
从 HTML 中:
其中包括:
<script src="http://js.awwshop.com/render/pub/shkawn/shkawn.js" type="text/javascript"></script>
电话:
<body onload="Init.Load();">
加载器类
var Init = new function () {
// POPUP IMAGE SCRIPT
document.write("<script src='http://js.awwshop.com/render/pub/shared/parse.js' type='text/javascript'></script>");
document.write("<script src='http://js.awwshop.com/render/pub/shared/popup-image.js' type='text/javascript'></script>");
// GO TO URL SCRIPT
document.write("<script src='http://js.awwshop.com/render/pub/shared/go-to-url.js' type='text/javascript'></script>");
this.Load = function () {
PopupImage.LoadPopupImages("http://img.awwshop.com/render/pub/shkawn/progressbar.gif");
}
}
此外,我使用类来处理我所有的东西。这意味着引用的每个文件都包含/all-it-is-是一个类。
我从来没有遇到过这样的空引用错误。
- 用javascript将script元素附加到头部;铬不能工作
- 是否在Script Src标记中包含Script<脚本>(JavaScript等)
- Google Apps Script中的标准Javascript
- 将Javascript变量传递给Google Script函数(Google Sheets)
- HTML 无法识别我要求它运行的 javascript 文件,语法错误:意外的令牌“<”(匿名函数)script.js:
- 使用图像而不是文本(script type=“text/javascript”)
- 使用script标记通过CSS文件在程序中包含JavaScript
- Javascript字符串在script标记内返回
- 如何在不使用windows.script.Notify()的情况下将多个参数从javascript传递到windowsp
- JavaScript VS Perl Script
- 带有/script值的javascript变量
- Javascript - Roll20 API Script
- Javascript appendChild(script)只能工作一次
- 将 JQuery 或 Javascript(不是 coffee.script)代码添加到 Rails 3.2 应用程序中
- After Effects math.round Javascript script
- Google script/JavaScript:这在对象后面做什么:(对象名称||{});.
- Coffee Script 是否允许使用 Javascript 库
- Javascript script/dom dependency?
- Shot Javascript <script></script> not in TextAre
- Html是
一些javascript " /script>&quo