簡體   English   中英

在html文件中添加了多個外部javascript,其中一個停止工作

[英]Added multiple external javascripts to html file, one stopped working

我有以下問題:我有一個名為index.html html文件。 然后,我有兩個外部JavaScript文件,命名為algoritmus.jsvypis_stavkujusich.js

我在index.html的頭部添加了兩個javascript,如下所示:

 <script src="js/algoritmus.js"> </script> <script src="js/vypis_stavkujucich.js"> </script> 

首先應在表體內插入一些信息,其次應在表下方插入一些文本。 現在,我的問題是:當我分別添加這些JavaScript腳本時,它們可以正常工作。 當我將它們加在一起時,只有它們中的第二個起作用! 我檢查了兩次src路徑,將它們都包裹在init()函數中,該函數僅在頁面完全加載后才啟動。 我自己真的找不到解決方案。 我不想將所有代碼放在一個js文件中,我想將它們分開以遵循良好的編程習慣。 希望你們能幫助我,對不起我的英語(我在stackovewflow上的第一篇文章)

index.html

 <!doctype html> <html> <head> <!-- IMPORT JAVASCRIPT AND JQUERY --> <script src="js/algoritmus.js"> </script> <script src="js/vypis_stavkujucich.js"> </script> <title> Virtuálne hry VirGames </title> <meta charset="utf-8"/> <meta name="viewport" content="width=device-width, initial-scale=1.0"/> <!-- IMPORT CSS --> <link rel="stylesheet" href="css/reset.css" /> <link rel="stylesheet" href="css/main.css" /> <link href='https://fonts.googleapis.com/css?family=Open+Sans' rel='stylesheet' type='text/css'> </head> <body> <script> var teraz=new Date(); var nastavMinuty=function() { var minutyPred=teraz.getMinutes(); var minutyPo; if(minutyPred.length>3) { minutyPo='0'+minutyPred; return minutyPo; } else return minutyPred; } document.write("Aktuálny dátum: "+teraz.getDate()+"."+(teraz.getMonth()+1)+"."+teraz.getFullYear()); document.write("<br> Aktuálny čas: "+teraz.getHours()+":"+nastavMinuty()+":"+teraz.getSeconds()); </script> <h1 id="main_h"> Virtuálne hry VirGames - s nami vyhráva každý ! </h1> <table id="tabulka_zapasov"> <tr> <th> Číslo zápasu </th> <th> Zápas </th> <th> 1 </th> <th> X </th> <th> 2 </th> </tr> </table> <div id="prava_strana"> Generovať zápasov: <input type="text" id="pocet_zapasov" /> <input type="submit" value="Generovať!" id="generuj_submit" /> <br /> Vytvoriť imaginárnych stavkárov: <input type="text" id="pocet_stavkarov" /> <input type="submit" value="Vytvoriť" id="vytvorit_submit" /> <div id="udaje_o_stavkaroch"></div> <table id="tabulka_stavok"> <tr> <th> stavkári podali 1 </th> <th> stavkári podali X </th> <th> stavkári podali 2 </th> <th> celkom € </th> </tr> </table> </div> <div id="vypis_stavkujucich"> <br id="clear-fix" /> </body> </html> 

algoritmus.js

 function init() { function Stat(nazov,rank) { this.nazov=nazov; this.rank=rank; this.favorit=false; } var staty=[]; var brazilia=new Stat("Brazília",9.6); var anglicko=new Stat("Anglicko",8.2); var cesko=new Stat("Česko",4.5); var slovensko=new Stat("Slovensko",2.2); var polsko=new Stat("Poľsko",4.1); var ukrajina=new Stat("Ukrajina",4.2); var spanielsko=new Stat("Španielsko",9.5); var taliansko=new Stat("Taliansko",8.7); var madarsko=new Stat("Maďarsko",4.8); var japonsko=new Stat("Japonsko",5.1); var mexiko=new Stat("Mexiko",6.6); var rusko=new Stat("Rusko",5.6); var chorvatsko=new Stat("Chorvátsko",4.9); var rumunsko=new Stat("Rumunsko",3.9); var finsko=new Stat("Fínsko",6.8); var svedsko=new Stat("Švédsko",6.5); var island=new Stat("Island",5.9); var usa=new Stat("USA",7.2); var kolumbia=new Stat("Kolumbia",5.7); var venezuela=new Stat("Venezuela",6.2); var bulharsko=new Stat("Bulharsko",3.1); var cina=new Stat("Čína",5.5); staty.push(finsko); staty.push(svedsko); staty.push(island); staty.push(usa); staty.push(kolumbia); staty.push(venezuela); staty.push(bulharsko); staty.push(cina); staty.push(madarsko); staty.push(japonsko); staty.push(mexiko); staty.push(rusko); staty.push(chorvatsko); staty.push(rumunsko); staty.push(brazilia); staty.push(anglicko); staty.push(cesko); staty.push(slovensko); staty.push(polsko); staty.push(ukrajina); staty.push(spanielsko); staty.push(taliansko); var mena=["Gustáv","František","Kadimír","Herbert","Hugo","Bonifác","Jožko","Sergej","Norbert","Kazimír","Branislav","Semir"]; var priezviska=["Janovský","Papadopulos","NejedzChleba","Krutý","Hlavatý","Ježo","Bujak","Had","Fuk","Metalový","Bulo","Aspirin","Kreken","Kunik","Kukuricudus","Vladis"]; function Stavkar(meno,priezvisko) { this.meno=meno+" "+priezvisko; this.peniaze=vratNahodneCislo(100); } var stavkari=[]; function vytvorStavkarov(pocet) { for(i=0;i<pocet;i++) { stavkar=new Stavkar(mena[vratNahodneCislo(mena.length)],priezviska[vratNahodneCislo(priezviska.length)]); stavkari.push(this.stavkar); } } var vytvorit_tlacitko=document.getElementById("vytvorit_submit"); vytvorit_tlacitko.onclick=function() { var kolkoStavkarov=document.getElementById("pocet_stavkarov").value; vytvorStavkarov(kolkoStavkarov); var udaje_o_stavkaroch=document.getElementById("udaje_o_stavkaroch"); for(i=0;i<kolkoStavkarov;i++) { var novyStavkar=document.createElement("p"); novyStavkar.innerHTML=stavkari[i].meno+" bude podávať za "+stavkari[i].peniaze+"€ na "+vyberPodanie(); udaje_o_stavkaroch.appendChild(novyStavkar); } } function vyberPodanie() { podanie=vratNahodneCislo(3); if(podanie==1) return 1; else if(podanie==2) return 'X'; else return 2; } vytvorStavkarov(10); var prvyKurz,xKurz,druhyKurz=0; var kurzyX=[2.40,2.60,2.80,3.00,3.20,3.40,3.60,3.80]; var kurzyFavorit=[1.40,1.45,1.50,1.60,1.70,1.80,1.90]; var kurzyOutsider=[2.10,2.20,2.25,2.30,2.45,2.50,2.60,2.70,2.80]; var generuj_tlacitko=document.getElementById("generuj_submit"); generuj_tlacitko.onclick = function generujZapasy(pocetZapasov) { var kolkoZapasov=document.getElementById("pocet_zapasov").value; pocetZapasov=kolkoZapasov; var tabulka=document.getElementById("tabulka_zapasov"); for(i=1;i<=pocetZapasov;i++) { var novyRiadok = document.createElement("tr"); tabulka.appendChild(novyRiadok); var prvaBunka=document.createElement("td"); var druhaBunka=document.createElement("td"); var tretiaBunka=document.createElement("td"); var stvrtaBunka=document.createElement("td"); var piataBunka=document.createElement("td"); prvaBunka.innerHTML=i; druhaBunka.innerHTML=vratZapas(); if(prvyStat.favorit) { tretiaBunka.innerHTML=kurzyFavorit[vratNahodneCislo(kurzyFavorit.length)]; piataBunka.innerHTML=kurzyOutsider[vratNahodneCislo(kurzyOutsider.length)] } else { tretiaBunka.innerHTML=kurzyOutsider[vratNahodneCislo(kurzyOutsider.length)]; piataBunka.innerHTML=kurzyFavorit[vratNahodneCislo(kurzyFavorit.length)] } stvrtaBunka.innerHTML=kurzyX[vratNahodneCislo(kurzyX.length)]; novyRiadok.appendChild(prvaBunka); novyRiadok.appendChild(druhaBunka); novyRiadok.appendChild(tretiaBunka); novyRiadok.appendChild(stvrtaBunka); novyRiadok.appendChild(piataBunka); } } function vratNahodneCislo(poAkeCislo) { var nahodneCislo=Math.floor(Math.random()*poAkeCislo); return nahodneCislo; } function vratZapas() { var favorit; prvyStat=staty[vratNahodneCislo(staty.length)]; druhyStat=staty[vratNahodneCislo(staty.length)]; if(druhyStat==prvyStat) druhyStat=staty[vratNahodneCislo(staty.length)].nazov; var zapas=prvyStat.nazov+" vs "+druhyStat.nazov; if(prvyStat.rank>druhyStat.rank) prvyStat.favorit=true; else druhyStat.favorit=true; return zapas; } }; window.onload=init; 

vypis_stavkujucich.js

 function initialize() { var vypis_s=document.getElementById("vypis_stavkujucich"); var r=document.createElement("p"); r.innerHTML="nieco"; vypis_s.appendChild(r); }; window.onload=initialize; 

正如GrumpyHat所說,您可能與文件中的變量名發生沖突。

如果您在一個文件中包含此代碼:

var a = "hello";

並將此代碼放在另一個文件中:

var a = "world";

執行代碼時,A的值將取決於最后執行的文件。 要解決此問題,您可以使用(function() {...})包裝所有代碼。

您不能像這樣綁定事件。 嘗試

function a() {
    alert('loaded')
}
function b() {
    alert('loaded2')
}
window.onload = a;
window.onload = b;

您會看到,只有第二個功能被觸發。 你必須用

window.onload = function() {
    a();
    b();
}

或者使用事件偵聽器,請參閱向window.onload添加兩個功能。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM