Problemen include files in Netscape

Pagina: 1
Acties:

  • RiBeye
  • Registratie: Juli 2001
  • Laatst online: 22-07-2020
Ik maak gebruik van verschillende JavaScript-functies. Voor de herbruikbaarheid, onderhoudbaarheid e.d. heb ik deze in includefiles geplaatst.

Dit gaat goed voor IE maar niet voor NS. Bepaalde includefiles werken wel goed en andere niet in NS. Weet iemand waar dit aan ligt?

  • Crazy D
  • Registratie: Augustus 2000
  • Laatst online: 13:41

Crazy D

I think we should take a look.

Behalve dat javascript [forum=13] is, welke includes doen het wel, en welke niet? Ik kan het helaas niet ruiken hier vandaan :P

Exact expert nodig?


  • leonardo1504
  • Registratie: April 2001
  • Niet online
Kan je wat code posten en aangeven wat het niet doet en wat wel?

  • chem
  • Registratie: Oktober 2000
  • Laatst online: 27-08 13:53

chem

Reist de wereld rond

move P&W > W&G

Klaar voor een nieuwe uitdaging.


  • RiBeye
  • Registratie: Juli 2001
  • Laatst online: 22-07-2020
Op donderdag 16 mei 2002 09:48 schreef leonardo1504 het volgende:
Kan je wat code posten en aangeven wat het niet doet en wat wel?
Wat bijvoorbeeld wel doet is het volgende:

//
// Browser Detection
//
isMac = (navigator.appVersion.indexOf("Mac")!=-1) ? true : false;
NS4 = (document.layers) ? true : false;
IEmac = ((document.all)&&(isMac)) ? true : false;
IE4plus = (document.all) ? true : false;
IE4 = ((document.all)&&(navigator.appVersion.indexOf("MSIE 4.")!=-1)) ? true : false;
IE5 = ((document.all)&&(navigator.appVersion.indexOf("MSIE 5.")!=-1)) ? true : false;
IE6 = ((document.all)&&(navigator.appVersion.indexOf("MSIE 6.")!=-1)) ? true : false;
ver4 = (NS4 || IE4plus) ? true : false;
NS6 = (!document.layers) && (navigator.userAgent.indexOf('Netscape')!=-1)?true:false;

IE5plus = IE5 || IE6;
IEMajor = 0;

if (IE4plus)
{
var start = navigator.appVersion.indexOf("MSIE");
var end = navigator.appVersion.indexOf(".",start);
IEMajor = parseInt(navigator.appVersion.substring(start+5,end));
IE5plus = (IEMajor>=5) ? true : false;
}


En wat het NIET doet:


function MM_preloadImages() { //v3.0
var d=document; if(d.images){ if(!d.MM_p) d.MM_p=new Array();
var i,j=d.MM_p.length,a=MM_preloadImages.arguments; for(i=0; i<a.length; i++)
if (a[i].indexOf("#")!=0){ d.MM_p[j]=new Image; d.MM_p[j++].src=a[i];}}
}

function MM_findObj(n, d) { //v4.0
var p,i,x; if(!d) d=document; if((p=n.indexOf("?"))>0&&parent.frames.length) {
d=parent.frames[n.substring(p+1)].document; n=n.substring(0,p);}
if(!(x=d[n])&&d.all) x=d.all[n]; for (i=0;!x&&i<d.forms.length;i++) x=d.forms[i][n];
for(i=0;!x&&d.layers&&i<d.layers.length;i++) x=MM_findObj(n,d.layers[i].document);
if(!x && document.getElementById) x=document.getElementById(n); return x;
}

function MM_nbGroup(event, grpName) { //v3.0
var i,img,nbArr,args=MM_nbGroup.arguments;
if (event == "init" && args.length > 2) {
if ((img = MM_findObj(args[2])) != null && !img.MM_init) {
img.MM_init = true; img.MM_up = args[3]; img.MM_dn = img.src;
if ((nbArr = document[grpName]) == null) nbArr = document[grpName] = new Array();
nbArr[nbArr.length] = img;
for (i=4; i < args.length-1; i+=2) if ((img = MM_findObj(args[i])) != null) {
if (!img.MM_up) img.MM_up = img.src;
img.src = img.MM_dn = args[i+1];
nbArr[nbArr.length] = img;
} }
} else if (event == "over") {
document.MM_nbOver = nbArr = new Array();
for (i=1; i < args.length-1; i+=3) if ((img = MM_findObj(args[i])) != null) {
if (!img.MM_up) img.MM_up = img.src;
img.src = (img.MM_dn && args[i+2]) ? args[i+2] : args[i+1];
nbArr[nbArr.length] = img;
}
} else if (event == "out" ) {
for (i=0; i < document.MM_nbOver.length; i++) {
img = document.MM_nbOver[i]; img.src = (img.MM_dn) ? img.MM_dn : img.MM_up; }
} else if (event == "down") {
if ((nbArr = document[grpName]) != null)
for (i=0; i < nbArr.length; i++) { img=nbArr[i]; img.src = img.MM_up; img.MM_dn = 0; }
document[grpName] = nbArr = new Array();
for (i=2; i < args.length-1; i+=2) if ((img = MM_findObj(args[i])) != null) {
if (!img.MM_up) img.MM_up = img.src;
img.src = img.MM_dn = args[i+1];
nbArr[nbArr.length] = img;
} } else if (event == "clear" ) {
if ((nbArr = document[grpName]) != null)
for (i=0; i < nbArr.length; i++) { img=nbArr[i]; img.src = img.MM_up; img.MM_dn = 0; }
}
}

Verwijderd

Op donderdag 16 mei 2002 09:37 schreef RiBeye het volgende:
Ik maak gebruik van verschillende JavaScript-functies. Voor de herbruikbaarheid, onderhoudbaarheid e.d. heb ik deze in includefiles geplaatst.

Dit gaat goed voor IE maar niet voor NS. Bepaalde includefiles werken wel goed en andere niet in NS. Weet iemand waar dit aan ligt?
Waarschijnlijk heb je last van het verschijnsels genaamd CrossBrowser. Bepaalde functies moeten in Microsoft Internet Explorer op de ene manier worden aangeroepen, en in Netscape weer op de andere manier.

Zodra in Netscape vervolgens op de Microsoft manier de functies worden aangeroepen zal de browser een fout uitpoepen onder het mom van... ammehoela, hier kan ik niks mee.

edit:

Na geposte code:

Scripting is crossbrowser, alleen is het alleen te begrijpen als je een browser bent.. op de vroege ochtend is dit voor mij niet in 1 oogopslag te doorgronden :D

Verwijderd

Op donderdag 16 mei 2002 09:57 schreef RiBeye het volgende:


Wat bijvoorbeeld wel doet is het volgende:

//
// Browser Detection
//
isMac = (navigator.appVersion.indexOf("Mac")!=-1) ? true : false;
NS4 = (document.layers) ? true : false;
IEmac = ((document.all)&&(isMac)) ? true : false;
IE4plus = (document.all) ? true : false;
IE4 = ((document.all)&&(navigator.appVersion.indexOf("MSIE 4.")!=-1)) ? true : false;
IE5 = ((document.all)&&(navigator.appVersion.indexOf("MSIE 5.")!=-1)) ? true : false;
IE6 = ((document.all)&&(navigator.appVersion.indexOf("MSIE 6.")!=-1)) ? true : false;
ver4 = (NS4 || IE4plus) ? true : false;
NS6 = (!document.layers) && (navigator.userAgent.indexOf('Netscape')!=-1)?true:false;

IE5plus = IE5 || IE6;
IEMajor = 0;

if (IE4plus)
{
var start = navigator.appVersion.indexOf("MSIE");
var end = navigator.appVersion.indexOf(".",start);
IEMajor = parseInt(navigator.appVersion.substring(start+5,end));
IE5plus = (IEMajor>=5) ? true : false;
}


[knip]
Browser detectie gaat iig hier de fout in, NS 6.x zal echt niet werken met document.layers, dat is nl. de NS 4.x manier .

NS 6.x moet op de volgende manier worden aangesproken:
code:
1
document.getElementById('layernaam')

ik weet echter niet of dat de fout oplost.

Verwijderd

Op donderdag 16 mei 2002 10:20 schreef Shadow3333 het volgende:

[..]

Browser detectie gaat iig hier de fout in, NS 6.x zal echt niet werken met document.layers, dat is nl. de NS 4.x manier .
Daarom staat er ook (!document.layers) :)

  • RiBeye
  • Registratie: Juli 2001
  • Laatst online: 22-07-2020
Op donderdag 16 mei 2002 10:20 schreef Shadow3333 het volgende:

[..]

Browser detectie gaat iig hier de fout in, NS 6.x zal echt niet werken met document.layers, dat is nl. de NS 4.x manier .

NS 6.x moet op de volgende manier worden aangesproken:
code:
1
document.getElementById('layernaam')

ik weet echter niet of dat de fout oplost.
Alles gaat goed in IE en NS als ik ze NIET include, dus het ligt niet aan de code van de inhoud van de include maar DOOR het includen.

Ligt het misschien aan de volgorde van het includen van de bestanden?

Verwijderd

Laat de code is zien waar je ze included? en incl. onload statements.

  • RiBeye
  • Registratie: Juli 2001
  • Laatst online: 22-07-2020
Ik heb het opgelost! In ieder geval erg bedankt allemaal voor de reakties!

Het ligt niet aan de volgorde van includen.

Ik had in het begin de volgende syntax voor het includen:

<SCRIPT LANGUAGE="JavaScript1.2" SRC="jscript/dreamweaver.js"></SCRIPT>

Toen ik de 1.2 weghaalde, dus resultaat:

<SCRIPT LANGUAGE="JavaScript" SRC="jscript/dreamweaver.js"></SCRIPT>

werkte het OOK in Netscape!

Waarvoor is dan eigenlijk die 1.2? Kun je niet beter gewoon altijd JavaScript gebruiken?

  • Bosmonster
  • Registratie: Juni 2001
  • Laatst online: 29-08 19:47

Bosmonster

*zucht*

Op donderdag 16 mei 2002 10:43 schreef RiBeye het volgende:
Ik heb het opgelost! In ieder geval erg bedankt allemaal voor de reakties!

Het ligt niet aan de volgorde van includen.

Ik had in het begin de volgende syntax voor het includen:

<SCRIPT LANGUAGE="JavaScript1.2" SRC="jscript/dreamweaver.js"></SCRIPT>

Toen ik de 1.2 weghaalde, dus resultaat:

<SCRIPT LANGUAGE="JavaScript" SRC="jscript/dreamweaver.js"></SCRIPT>

werkte het OOK in Netscape!

Waarvoor is dan eigenlijk die 1.2? Kun je niet beter gewoon altijd JavaScript gebruiken?
De 1.2 toevoeging is inderdaad nutteloos, aangezien Javascript 1.2 implementatie ook niet gelijk is in verschillende browsers..

Gebruik nog liever:

<script type="text/javascript">

Verwijderd

Je browser pakt automatisch de juiste JavaScript versie. Netscape4.* ondersteund nog niet volledig versie 1.2 :)

Verwijderd

Op donderdag 16 mei 2002 10:23 schreef Gordijnstok het volgende:

Daarom staat er ook (!document.layers) :)
goedemorgen Shadow3333.......
Pagina: 1