Użyłem zewnętrznego pliku .js dla mojego JavaScript, ale napotkałem problem z moim HTML, nie mogąc znaleźć żadnej z moich funkcji JavaScript. Wiem, że funkcje działają, ponieważ jeśli przeniesię to z zewnętrznego pliku do mojego pliku html, to działa dobrze. Błąd, który dostaję w konsoli JavaScript w Chrome, polega na tym, że moje funkcje nie są zdefiniowane. Wiem również, że moja ścieżka do mojej strony zewnętrznej działa, ponieważ mam kilka tagów canvas, które czytają JavaScript doskonale.Funkcje JavaScript nie działają w zewnętrznym pliku .js
Podsumowując, to działa:
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);
// ...
};
Ale dodaje daje mi błąd "Uncaught ReferenceError: getLocation nie jest zdefiniowana":
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.";
}
}
// ...
}
Nie jest to ogromny problem, ponieważ mogę tylko trzymać JavaScript w moim pliku HTML, ale to zajmuje dużo miejsca i wolałbym, aby utrzymać wszystko zorganizowane. Jeśli ktokolwiek wie, jak rozwiązać ten problem, będzie to bardzo cenne.
Czy jesteś pewien, że JavaScript jest wykonywany przed uruchomieniem zdarzenia onclick? – railgun
@DonovanGlover Wszystkie napisana przeze mnie JavaScript znajduje się wewnątrz 'window.onload = function() {', a javascript dla wszystkich 8 moich tagów canvas działa poprawnie, za każdym razem kiedy tworzę chrome funkcji daje mi Uncaught ReferenceError: getLocation nie jest zdefiniowany błąd. –
Czy możesz opublikować składnię znacznika '' składnia. – garromark