Externe JavaScript einbauen
Andy
- projektverwaltung
Hi,
die Frage kam bestimmt schon meherere Male, doch muss ich sie leider noch mal stellen, da ich keinerlei vernünftige Antworten finden konnte:
Kann ich externe JavaScripts in eine HTML Datei einbinden, die dann von allen Browsern gelesen werden?
Falls ja, wie funzt das?
Denn
<SCRIPT LANGUAGE="JavaScript" SRC="resize.js"></SCRIPT>
mit zusätzlich <body onload="*"> funktioiert bei mir irgendwie nicht.
Danke für Eure Hilfe im Voraus
Andy
Hallo Andy,
Kann ich externe JavaScripts in eine HTML Datei einbinden, die dann von allen Browsern gelesen werden?
Klar - die werden von allen Browsern mit aktiviertem JS gelesen.
<SCRIPT LANGUAGE="JavaScript" SRC="resize.js"></SCRIPT>
1. LANGUAGE kannst Du den Hasen geben.
2. Da fehlt das obligatorische type="text/javascript"
3. Wird die Datei resize.js mit dem richtigen Mimetype (text/javascript) vom Server geliefert?
Wenn alle drei Punkte erfüllt sind, müsste es in jeden Browser laufen, sofern keine Syntaxfehler in der Datei sind.
Bei Netscape/Mozilla (egal, welche Version) kannst Du notfalls die JS-Konsole per javascript: in die Adresszeile aufrufen.
mit zusätzlich <body onload="*"> funktioiert bei mir irgendwie nicht.
onload="*"? Woher hast Du denn das? Das ist Käse.
Grüße,
Christian
Also ich habe folgende JavaScript Datei:
<script language="Javascript">
<!--
var w = 100;
var h = 70;
var n = (document.layers) ? 1:0;
var ie = (document.all) ? 1:0;
function makeObj(obj,nest){
nest=(!nest) ? '':'document.'+nest+'.'
this.css=(n) ? eval(nest+'document.'+obj):eval(obj+'.style')
this.evnt=(n)? eval(nest+'document.'+obj):eval(obj);
this.moveIt=b_moveIt;}
function b_moveIt(x,y){
this.x=x; this.y=y
this.css.left=this.x
this.css.top=this.y}
var pageWidth,pageHeight
function init(){
oTest=new makeObj('divBottom')
pageWidth=(ie)?document.body.offsetWidth-4:innerWidth;
pageHeight=(ie)?document.body.offsetHeight-2:innerHeight;
checkIt()
if(ie) window.onscroll=checkIt;}
function f(){alert(f)}
function checkIt(){
if(ie) oTest.moveIt(document.body.scrollLeft+pageWidth-w,document.body.scrollTop+pageHeight-h)
else if(n){oTest.moveIt(window.pageXOffset+pageWidth-w, window.pageYOffset+pageHeight-h)
setTimeout('checkIt()',20)}}
//-->
</script>
Diese wird mit meinem <body onload="init()" aufgerufen! Doch wenn ich die extern aufrufen will, funzt das nicht.
Eine dämliche Frage: Muss das in den Head oder in den Body. Es funzt in beidem nicht!
Hallo,
Also ich habe folgende JavaScript Datei:
<script language="Javascript">
<!--
Das gehört nicht in eine .js-Datei. Das gehört nur in HTML rein.
var w = 100;
var h = 70;
var n = (document.layers) ? 1:0;
var ie = (document.all) ? 1:0;
Ist zwar kein Syntaxfehler, aber Du beachtest nur die proprietären Erweiterungen von MS und Netscape. Neuere Browser kommen damit nicht klar. (Speziell Opera, Netscape 6+, Mozilla)
function makeObj(obj,nest){
nest=(!nest) ? '':'document.'+nest+'.'
this.css=(n) ? eval(nest+'document.'+obj):eval(obj+'.style')
this.evnt=(n)? eval(nest+'document.'+obj):eval(obj);
Eval ist böse[tm].
this.moveIt=b_moveIt;}
function b_moveIt(x,y){
this.x=x; this.y=y
^ hier fehlt ein Semikolon
this.css.left=this.x
^ hier auch
this.css.top=this.y}
^ hier auch
var pageWidth,pageHeight
^ hier auch
function init(){
oTest=new makeObj('divBottom')
^ hier auch
pageWidth=(ie)?document.body.offsetWidth-4:innerWidth;
pageHeight=(ie)?document.body.offsetHeight-2:innerHeight;
checkIt()
^ hier auch
if(ie) window.onscroll=checkIt;}
function f(){alert(f)}
function checkIt(){
if(ie) oTest.moveIt(document.body.scrollLeft+pageWidth-w,document.body.scrollTop+pageHeight-h)
^ hier schon wieder
else if(n){oTest.moveIt(window.pageXOffset+pageWidth-w, window.pageYOffset+pageHeight-h)
^ hier auch
setTimeout('checkIt()',20)}}
^ hier auch
//-->
</script>
Das gehört nicht is .js-Dateien.
Eine dämliche Frage: Muss das in den Head oder in den Body. Es funzt in beidem nicht!
Die Einbindung der externen Datei sollte in den Head, aber sie dürfte theoretisch auch im body sein.
Grüße,
Christian
Hallo,
Kann ich externe JavaScripts in eine HTML Datei einbinden, die dann von allen Browsern gelesen werden?
Falls ja, wie funzt das?
Denn
<SCRIPT LANGUAGE="JavaScript" SRC="resize.js"></SCRIPT>
mit zusätzlich <body onload="*"> funktioiert bei mir irgendwie nicht.
eigentlich müsste es so, wie oben steht mit <script></script> gehen. Was bedeutet onLoad="*"? Ausserdem würde ich statt
<script language="JavaScript" src="resize.js"></script>
<script type="text/javascript" src="resize.js"></script>
verwenden.
MfG Dmitri