我使用了一个外部的.js文件进行JavaScript编程,但是我遇到了一个问题,我的HTML找不到任何JavaScript函数。我知道这些函数是有效的,因为如果我将它们从外部文件移动到我的html文件中,它们可以正常工作。在Chrome的JavaScript控制台上,我得到的错误是我的函数未定义。我也知道我的外部页面路径是正确的,因为我有一些画布标签可以完美地读取JavaScript。
简言之,这个可行:
HTML:
但是以下代码会报错:“未捕获的引用错误:getLocation未定义”:
HTML:
简言之,这个可行:
HTML:
<canvas id="Canvas7"></canvas>
JavaScript:
window.onload = function() {
var g=document.getElementById("Canvas7");
var ctx=g.getContext("2d");
var grd=ctx.createRadialGradient(75,50,5,90,60,100);
grd.addColorStop(0,"red");
grd.addColorStop(1,"white");
ctx.fillStyle=grd;
ctx.fillRect(10,10,150,80);
// ...
};
但是以下代码会报错:“未捕获的引用错误:getLocation未定义”:
HTML:
<button onclick="getLocation()">Click here</button>
JavaScript:
window.onload = function() {
var x=document.getElementById("location");
function getLocation(){
if (navigator.getlocation){
navigator.getlocation.getCurrentPosition(showPosition,showError);
}
else{
x.innerHTML="GeoLocation is not supported by this browser.";
}
}
// ...
}
这并不是一个很大的问题,因为我可以把JavaScript代码放在HTML文件中,但它会占用很多空间,我更喜欢保持一切井然有序。如果有人知道如何解决这个问题,将不胜感激。
<script>
标签语法?提醒一下,如果JavaScript在外部文件中,你需要通过使用<script type="text\javascript" src="\path\to\script.js"></script>
语法将JavaScript加载到页面上,然后才能触发点击事件。 - garromarkwindow.getLocation = function() { ... }
来将其变成全局函数。 - user1585455<script type="text/javascript" src="test.js"></script>
。.js文件与.html和.css文件在同一个目录文件夹中。 - David Suzuki Moore