Avatar billede Slettet bruger
27. april 2007 - 21:00 Der er 31 kommentarer og
1 løsning

2 javascripts, som konflikter med hinanden

Hejsa.

Jeg har 2 javascripts, som konflikter med hinanden.
Når jeg bruger det ene javascript, så virker det andet ikke - og omvendt.

Hvordan løser man det problem?

Jeg poster et eksempel nedenunder, for nemmere at kunne overskue hvordan det hele ser ud.
Det består af 3 filer:
- test1.html
- alttxt.js
- quote.js
Avatar billede Slettet bruger
27. april 2007 - 21:01 #1
test1.html :
========================================================
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1" />
<title>test1.html</title>

<style type="text/css">
  .navtext {
  width:235px;
  font-size:8pt;
  font-family:verdana;
  border-width:2px;
  border-style:outset;
  border-color:#006BAE;
  layer-background-color:#FFF6D9;
  background-color:#FFF6D9;
  color:black;
  }
</style>

<script type="text/javascript" src="quote.js"></script> 
<script type="text/javascript" src="alttxt.js"></script>

</head>

<body>
</body>

<a href="scriptasylum.com" onmouseover="writetxt('Popup text')" onmouseout="writetxt(0)">Link text</a>

<div id="navtxt" class="navtext" style="visibility:hidden; position:absolute; top:0px; left:-400px; z-index:10000; padding:10px"></div>

</html>
========================================================


alttxt.js :
========================================================

/****
ALTTXT V1.6
BY: BRIAN GOSSELIN OF SCRIPTASYLUM.COM
****/

var dofade=true;      // ENABLES FADE-IN EFFECT (FOR IE4+ AND NS6 ONLY)

var centertext=false;  // CENTERS THE TEXT INSIDE THE BOX. YOU CAN'T SIMPLY DO THIS VIA "STYLE" BECAUSE OF NS4.
                      // OTHERWISE, TEXT IS LEFT-JUSTIFIED.

var xoffset=9;        // HORIZONTAL PIXEL COUNT FROM CURSOR

var yoffset=25;        // VERTICAL PIXEL COUNT FROM CURSOR

var mousefollow=false; // ENABLES MOUSE FOLLOW MODE WHERE THE BOX CONTINUES TO FOLLOW THE MOUSE. SET TO false TO
                      // LOCK THE BOX WHEREVER IT INITIALLY APPEARS.

var hideDelay=200;    // DELAY IN MILLISECONDS ( 1 SECOND = 1000 MILLISECONDS) FROM WHEN YOU HOVER OUT OF LINK
                      // AND THE BOX DISAPPEARS ONLY WHEN "mousefollow" IS SET TO "false".
                      // THIS WILL GIVE THE USER TIME TO CLICK A LINK OR WHATEVER IN THE BOX BEFORE IT DISAPPEARS.

////////////////////////////// NO NEED TO EDIT BEYOND THIS POINT //////////////////////////////////////

function altProps(){
this.w3c=(document.getElementById)?true:false;
this.ns4=(document.layers)?true:false;
this.ie4=(document.all && !this.w3c)?true:false;
this.ie5=(document.all && this.w3c)?true:false;
this.ns6=(this.w3c && navigator.appName.indexOf("Netscape")>=0 )?true:false;
this.w_y=0;
this.w_x=0;
this.navtxt=null;
this.boxheight=0;
this.boxwidth=0;
this.ishover=false;
this.ieop=0;
this.op_id=0;
this.oktomove=false;
this.dy=0;
}

var AT=new altProps();

function toggle_centertext(){
centertext=!centertext;
}

function toggle_mousefollow(){
mousefollow=!mousefollow;
}

function toggle_dofade(){
dofade=!dofade;
if(!dofade)AT.ieop=100;
}


function getwindowdims(){
AT.w_y=(AT.ie5||AT.ie4)?document.body.clientHeight:window.innerHeight;
AT.w_x=(AT.ie5||AT.ie4)?document.body.clientWidth:window.innerWidth;
}

function getboxwidth(){
if(AT.ns4)AT.boxwidth=(AT.navtxt.document.width)? AT.navtxt.document.width : AT.navtxt.clip.width;
else if(AT.ie4)AT.boxwidth=(AT.navtxt.style.pixelWidth)? AT.navtxt.style.pixelWidth : AT.navtxt.offsetWidth;
else AT.boxwidth=(AT.navtxt.style.width)? parseInt(AT.navtxt.style.width) : parseInt(AT.navtxt.offsetWidth);
}

function getboxheight(){
if(AT.ns4)AT.boxheight=(AT.navtxt.document.height)? AT.navtxt.document.height : AT.navtxt.clip.height;
else if(AT.ie4)AT.boxheight=(AT.navtxt.style.pixelHeight)? AT.navtxt.style.pixelHeight : AT.navtxt.offsetHeight;
else AT.boxheight=parseInt(AT.navtxt.offsetHeight);
}

function movenavtxt(x,y){
if(AT.ns4)AT.navtxt.moveTo(x,y);
else{
AT.navtxt.style.left=x+'px';
AT.navtxt.style.top=y+'px';
}}

function getpagescrolly(){
if(AT.ie5||AT.ie4)return document.body.scrollTop;
else return window.pageYOffset;
}

function getpagescrollx(){
if(AT.ie5||AT.ie4)return document.body.scrollLeft;
else return window.pageXOffset;
}

function writeindiv(text){
if(AT.ns4){
AT.navtxt.document.open();
AT.navtxt.document.write(text);
AT.navtxt.document.close();
}
else AT.navtxt.innerHTML=text;
}

function writetxt(text){
if(dofade && (AT.ie4||AT.w3c))clearInterval(AT.op_id);
if(text!=0){
if(!mousefollow)clearTimeout(AT.dy);
AT.oktomove=true;
AT.ishover=true;
if(AT.ns4)text='<div class="navtext">'+((centertext)?'<center>':'')+text+((centertext)?'</center>':'')+'</div>';
if(AT.w3c||AT.ie4)AT.navtxt.style.textAlign=(centertext)?"center":"left";
writeindiv(text);
if(AT.ns4)AT.navtxt.visibility="show";
else{
AT.navtxt.style.visibility="visible";
AT.navtxt.style.display="block";
}
getboxheight();
if((AT.w3c||AT.ie4) && dofade){
if(AT.ie4||AT.ie5)AT.navtxt.style.filter="alpha(opacity=0)";
if(AT.ns6)AT.navtxt.style.MozOpacity=0;
AT.ieop=0;
AT.op_id=setInterval('incropacity()',50);
}}else{
if(mousefollow)hideAlttxt();
else AT.dy=setTimeout('hideAlttxt()',hideDelay);
}}

function hideAlttxt(){
if(AT.ns4)AT.navtxt.visibility="hide";
else{
AT.navtxt.style.display="none";
AT.navtxt.style.visibility="hidden";
}
movenavtxt(-AT.boxwidth-10,0);
writeindiv('');
}

function incropacity(){
if(AT.ieop<=100){
AT.ieop+=7;
if(AT.ie4||AT.ie5)AT.navtxt.style.filter="alpha(opacity="+AT.ieop+")";
if(AT.ns6)AT.navtxt.style.MozOpacity=AT.ieop/100;
}else clearInterval(AT.op_id);
}

function moveobj(evt){
mx=(AT.ie5||AT.ie4)?event.clientX:evt.pageX;
my=(AT.ie5||AT.ie4)?event.clientY:evt.pageY;
if(AT.ishover && AT.oktomove){
margin=(AT.ie4||AT.ie5)?5:25;
if(AT.ns6)if(document.height+27-window.innerHeight<0)margin=15;
if(AT.ns4)if(document.height-window.innerHeight<0)margin=10;
if(AT.ns4||AT.ns6)mx-=getpagescrollx();
if(AT.ns4)my-=getpagescrolly();
xoff=mx+xoffset;
yoff=(my+AT.boxheight+yoffset-((AT.ns6)?getpagescrolly():0)>=AT.w_y)? -5-AT.boxheight-yoffset: yoffset;
movenavtxt( Math.min(AT.w_x-AT.boxwidth-margin , Math.max(2,xoff))+getpagescrollx(), my+yoff+((!AT.ns6)?getpagescrolly():0));
if(!mousefollow)AT.oktomove=false;
}}


window.onload=function(){
  AT.navtxt=(AT.ns4)?document.layers['navtxt']:(AT.ie4)?document.all['navtxt']:(AT.w3c)?document.getElementById('navtxt'):null;
  getboxwidth();
  getboxheight();
  getwindowdims();
  if(AT.ie4||AT.ie5&&dofade)AT.navtxt.style.filter="alpha(opacity=100)";
  AT.navtxt.onmouseover=function(){
  if(!mousefollow)clearTimeout(AT.dy);
  }
  AT.navtxt.onmouseout=function(){
  if(!mousefollow)AT.dy=setTimeout('hideAlttxt()',hideDelay);
  }
  if(AT.ns4)document.captureEvents(Event.MOUSEMOVE);
  document.onmousemove=moveobj;
  window.onresize=getwindowdims;
}


========================================================


quote.js :
========================================================
<div class="quote_container"><div class="quote">
<script type="text/javascript">

//Translucent scroller- By Dynamic Drive
//For full source code and more DHTML scripts, visit http://www.dynamicdrive.com
//This credit MUST stay intact for use

var scroller_width='239px'
var scroller_height='70px'
var bgcolor='#ffffff'
var pause=4000 //SET PAUSE BETWEEN SLIDE (3000=3 seconds)

var scrollercontent=new Array()
//Define scroller contents. Extend or contract array as needed
scrollercontent[0]='Dont follow me - Im lost too.'
scrollercontent[1]='Pain is just weaknes leaving the body.'


//Link i scrolleren: JavaScript? <a href="http://www.javascriptkit.com">JavaScript Kit</a> is

////NO need to edit beyond here/////////////

var ie4=document.all
var dom=document.getElementById&&navigator.userAgent.indexOf("Opera")==-1

if (ie4||dom)
document.write('<div style="position:relative;font-family:century gothic,sans-serif;font-size:12px;color:#999;font-size:12px;font-style:italic;font-style:italic;width:'+scroller_width+';height:'+scroller_height+';overflow:hidden"><div id="canvas0" style="position:absolute;font-family:century gothic,sans-serif;font-size:12px;color:#999;background-color:'+bgcolor+';width:'+scroller_width+';height:'+scroller_height+';top:'+scroller_height+';filter:alpha(opacity=20);-moz-opacity:0.2;"></div><div id="canvas1" style="position:absolute;font-family:century gothic,sans-serif;font-size:12px;color:#999;background-color:'+bgcolor+';width:'+scroller_width+';height:'+scroller_height+';top:'+scroller_height+';filter:alpha(opacity=20);-moz-opacity:0.2;"></div></div>')
else if (document.layers){
document.write('<ilayer id=tickernsmain visibility=hide width='+scroller_width+' height='+scroller_height+' bgcolor='+bgcolor+'><layer id=tickernssub width='+scroller_width+' height='+scroller_height+' left=0 top=0>'+scrollercontent[0]+'</layer></ilayer>')
}

var curpos=scroller_height*(1)
var degree=10
var curcanvas="canvas0"
var curindex=0
var nextindex=1

function moveslide(){
if (curpos>0){
curpos=Math.max(curpos-degree,0)
tempobj.style.top=curpos+"px"
}
else{
clearInterval(dropslide)
if (crossobj.filters)
crossobj.filters.alpha.opacity=100
else if (crossobj.style.MozOpacity)
crossobj.style.MozOpacity=1
nextcanvas=(curcanvas=="canvas0")? "canvas0" : "canvas1"
tempobj=ie4? eval("document.all."+nextcanvas) : document.getElementById(nextcanvas)
tempobj.innerHTML=scrollercontent[curindex]
nextindex=(nextindex<scrollercontent.length-1)? nextindex+1 : 0
setTimeout("rotateslide()",pause)
}
}

function rotateslide(){
if (ie4||dom){
resetit(curcanvas)
crossobj=tempobj=ie4? eval("document.all."+curcanvas) : document.getElementById(curcanvas)
crossobj.style.zIndex++
if (crossobj.filters)
document.all.canvas0.filters.alpha.opacity=document.all.canvas1.filters.alpha.opacity=20
else if (crossobj.style.MozOpacity)
document.getElementById("canvas0").style.MozOpacity=document.getElementById("canvas1").style.MozOpacity=0.2
var temp='setInterval("moveslide()",50)'
dropslide=eval(temp)
curcanvas=(curcanvas=="canvas0")? "canvas1" : "canvas0"
}
else if (document.layers){
crossobj.document.write(scrollercontent[curindex])
crossobj.document.close()
}
curindex=(curindex<scrollercontent.length-1)? curindex+1 : 0
}

function resetit(what){
curpos=parseInt(scroller_height)*(1)
var crossobj=ie4? eval("document.all."+what) : document.getElementById(what)
crossobj.style.top=curpos+"px"
}

function startit(){
crossobj=ie4? eval("document.all."+curcanvas) : dom? document.getElementById(curcanvas) : document.tickernsmain.document.tickernssub
if (ie4||dom){
crossobj.innerHTML=scrollercontent[curindex]
rotateslide()
}
else{
document.tickernsmain.visibility='show'
curindex++
setInterval("rotateslide()",pause)
}
}

if (ie4||dom||document.layers) {
  var onloadScript1 = window.onload;
  window.onload = function() {
    if(onloadScript1) onloadScript1();
    startit();
  }
}
</script>
</div></div>
========================================================
Avatar billede Slettet bruger
27. april 2007 - 21:06 #2
Og ja, man skal selvfølgelig også includere/kalde på den anden js-fil i html-dokumentet, for at konflikten opstår:

    <!--#include file="quote.js"-->

Plus lidt css, men det er jo ikke relevant her.
Avatar billede softspot Forsker
27. april 2007 - 21:09 #3
Det er fordi de begge erklærer en window.onload eventhandler, hvilket betyder at det kun er den sidste der får lov til at køre.

Det du skal gøre er at ændre de to onload eventhandlers, så de også giver evt. andre onload-handlers lov til at køre. Dette kan du gøres som det er gjrot i quoto.js (daisychain), nemlig ved at gemme den eksisterende handler og definere en ny, for som det første i handleren, at kalde den forrige handler og derefter udføres sin egen handler.

Dvs. window.onload-handleren i alttext.js skal ændres som følger:

var onloadQuote = window.onload;
window.onload=function(){
  if(onloadQuote) onloadQuote();
  AT.navtxt=(AT.ns4)?document.layers['navtxt']:(AT.ie4)?document.all['navtxt']:(AT.w3c)?document.getElementById('navtxt'):null;
  getboxwidth();
  getboxheight();
  getwindowdims();
  if(AT.ie4||AT.ie5&&dofade)AT.navtxt.style.filter="alpha(opacity=100)";
  AT.navtxt.onmouseover=function(){
  if(!mousefollow)clearTimeout(AT.dy);
  }
  AT.navtxt.onmouseout=function(){
  if(!mousefollow)AT.dy=setTimeout('hideAlttxt()',hideDelay);
  }
  if(AT.ns4)document.captureEvents(Event.MOUSEMOVE);
  document.onmousemove=moveobj;
  window.onresize=getwindowdims;
}
Avatar billede softspot Forsker
27. april 2007 - 21:11 #4
Du måske endda klare det ved at inkludere quote.js som den sidste i dit dokument - men det er mere robust hvis du ændrer handleren i alttext.js til at kunne køre sammen med andre js-filer...
Avatar billede mclemens Nybegynder
27. april 2007 - 21:12 #5
quote.js





//Translucent scroller- By Dynamic Drive
//For full source code and more DHTML scripts, visit http://www.dynamicdrive.com
//This credit MUST stay intact for use

var scroller_width='239px'
var scroller_height='70px'
var bgcolor='#ffffff'
var pause=4000 //SET PAUSE BETWEEN SLIDE (3000=3 seconds)

var scrollercontent=new Array()
//Define scroller contents. Extend or contract array as needed
scrollercontent[0]='Dont follow me - Im lost too.'
scrollercontent[1]='Pain is just weaknes leaving the body.'


//Link i scrolleren: JavaScript? <a href="http://www.javascriptkit.com">JavaScript Kit</a> is

////NO need to edit beyond here/////////////

var ie4=document.all
var dom=document.getElementById&&navigator.userAgent.indexOf("Opera")==-1

if (ie4||dom)
document.write('<div style="position:relative;font-family:century gothic,sans-serif;font-size:12px;color:#999;font-size:12px;font-style:italic;font-style:italic;width:'+scroller_width+';height:'+scroller_height+';overflow:hidden"><div id="canvas0" style="position:absolute;font-family:century gothic,sans-serif;font-size:12px;color:#999;background-color:'+bgcolor+';width:'+scroller_width+';height:'+scroller_height+';top:'+scroller_height+';filter:alpha(opacity=20);-moz-opacity:0.2;"></div><div id="canvas1" style="position:absolute;font-family:century gothic,sans-serif;font-size:12px;color:#999;background-color:'+bgcolor+';width:'+scroller_width+';height:'+scroller_height+';top:'+scroller_height+';filter:alpha(opacity=20);-moz-opacity:0.2;"></div></div>')
else if (document.layers){
document.write('<ilayer id=tickernsmain visibility=hide width='+scroller_width+' height='+scroller_height+' bgcolor='+bgcolor+'><layer id=tickernssub width='+scroller_width+' height='+scroller_height+' left=0 top=0>'+scrollercontent[0]+'</layer></ilayer>')
}

var curpos=scroller_height*(1)
var degree=10
var curcanvas="canvas0"
var curindex=0
var nextindex=1

function moveslide(){
if (curpos>0){
curpos=Math.max(curpos-degree,0)
tempobj.style.top=curpos+"px"
}
else{
clearInterval(dropslide)
if (crossobj.filters)
crossobj.filters.alpha.opacity=100
else if (crossobj.style.MozOpacity)
crossobj.style.MozOpacity=1
nextcanvas=(curcanvas=="canvas0")? "canvas0" : "canvas1"
tempobj=ie4? eval("document.all."+nextcanvas) : document.getElementById(nextcanvas)
tempobj.innerHTML=scrollercontent[curindex]
nextindex=(nextindex<scrollercontent.length-1)? nextindex+1 : 0
setTimeout("rotateslide()",pause)
}
}

function rotateslide(){
if (ie4||dom){
resetit(curcanvas)
crossobj=tempobj=ie4? eval("document.all."+curcanvas) : document.getElementById(curcanvas)
crossobj.style.zIndex++
if (crossobj.filters)
document.all.canvas0.filters.alpha.opacity=document.all.canvas1.filters.alpha.opacity=20
else if (crossobj.style.MozOpacity)
document.getElementById("canvas0").style.MozOpacity=document.getElementById("canvas1").style.MozOpacity=0.2
var temp='setInterval("moveslide()",50)'
dropslide=eval(temp)
curcanvas=(curcanvas=="canvas0")? "canvas1" : "canvas0"
}
else if (document.layers){
crossobj.document.write(scrollercontent[curindex])
crossobj.document.close()
}
curindex=(curindex<scrollercontent.length-1)? curindex+1 : 0
}

function resetit(what){
curpos=parseInt(scroller_height)*(1)
var crossobj=ie4? eval("document.all."+what) : document.getElementById(what)
crossobj.style.top=curpos+"px"
}

function startit(){
crossobj=ie4? eval("document.all."+curcanvas) : dom? document.getElementById(curcanvas) : document.tickernsmain.document.tickernssub
if (ie4||dom){
crossobj.innerHTML=scrollercontent[curindex]
rotateslide()
}
else{
document.tickernsmain.visibility='show'
curindex++
setInterval("rotateslide()",pause)
}
}









alttxt.js




/****
ALTTXT V1.6
BY: BRIAN GOSSELIN OF SCRIPTASYLUM.COM
****/

var dofade=true;      // ENABLES FADE-IN EFFECT (FOR IE4+ AND NS6 ONLY)

var centertext=false;  // CENTERS THE TEXT INSIDE THE BOX. YOU CAN'T SIMPLY DO THIS VIA "STYLE" BECAUSE OF NS4.
                      // OTHERWISE, TEXT IS LEFT-JUSTIFIED.

var xoffset=9;        // HORIZONTAL PIXEL COUNT FROM CURSOR

var yoffset=25;        // VERTICAL PIXEL COUNT FROM CURSOR

var mousefollow=false; // ENABLES MOUSE FOLLOW MODE WHERE THE BOX CONTINUES TO FOLLOW THE MOUSE. SET TO false TO
                      // LOCK THE BOX WHEREVER IT INITIALLY APPEARS.

var hideDelay=200;    // DELAY IN MILLISECONDS ( 1 SECOND = 1000 MILLISECONDS) FROM WHEN YOU HOVER OUT OF LINK
                      // AND THE BOX DISAPPEARS ONLY WHEN "mousefollow" IS SET TO "false".
                      // THIS WILL GIVE THE USER TIME TO CLICK A LINK OR WHATEVER IN THE BOX BEFORE IT DISAPPEARS.

////////////////////////////// NO NEED TO EDIT BEYOND THIS POINT //////////////////////////////////////

function altProps(){
this.w3c=(document.getElementById)?true:false;
this.ns4=(document.layers)?true:false;
this.ie4=(document.all && !this.w3c)?true:false;
this.ie5=(document.all && this.w3c)?true:false;
this.ns6=(this.w3c && navigator.appName.indexOf("Netscape")>=0 )?true:false;
this.w_y=0;
this.w_x=0;
this.navtxt=null;
this.boxheight=0;
this.boxwidth=0;
this.ishover=false;
this.ieop=0;
this.op_id=0;
this.oktomove=false;
this.dy=0;
}

var AT=new altProps();

function toggle_centertext(){
centertext=!centertext;
}

function toggle_mousefollow(){
mousefollow=!mousefollow;
}

function toggle_dofade(){
dofade=!dofade;
if(!dofade)AT.ieop=100;
}


function getwindowdims(){
AT.w_y=(AT.ie5||AT.ie4)?document.body.clientHeight:window.innerHeight;
AT.w_x=(AT.ie5||AT.ie4)?document.body.clientWidth:window.innerWidth;
}

function getboxwidth(){
if(AT.ns4)AT.boxwidth=(AT.navtxt.document.width)? AT.navtxt.document.width : AT.navtxt.clip.width;
else if(AT.ie4)AT.boxwidth=(AT.navtxt.style.pixelWidth)? AT.navtxt.style.pixelWidth : AT.navtxt.offsetWidth;
else AT.boxwidth=(AT.navtxt.style.width)? parseInt(AT.navtxt.style.width) : parseInt(AT.navtxt.offsetWidth);
}

function getboxheight(){
if(AT.ns4)AT.boxheight=(AT.navtxt.document.height)? AT.navtxt.document.height : AT.navtxt.clip.height;
else if(AT.ie4)AT.boxheight=(AT.navtxt.style.pixelHeight)? AT.navtxt.style.pixelHeight : AT.navtxt.offsetHeight;
else AT.boxheight=parseInt(AT.navtxt.offsetHeight);
}

function movenavtxt(x,y){
if(AT.ns4)AT.navtxt.moveTo(x,y);
else{
AT.navtxt.style.left=x+'px';
AT.navtxt.style.top=y+'px';
}}

function getpagescrolly(){
if(AT.ie5||AT.ie4)return document.body.scrollTop;
else return window.pageYOffset;
}

function getpagescrollx(){
if(AT.ie5||AT.ie4)return document.body.scrollLeft;
else return window.pageXOffset;
}

function writeindiv(text){
if(AT.ns4){
AT.navtxt.document.open();
AT.navtxt.document.write(text);
AT.navtxt.document.close();
}
else AT.navtxt.innerHTML=text;
}

function writetxt(text){
if(dofade && (AT.ie4||AT.w3c))clearInterval(AT.op_id);
if(text!=0){
if(!mousefollow)clearTimeout(AT.dy);
AT.oktomove=true;
AT.ishover=true;
if(AT.ns4)text='<div class="navtext">'+((centertext)?'<center>':'')+text+((centertext)?'</center>':'')+'</div>';
if(AT.w3c||AT.ie4)AT.navtxt.style.textAlign=(centertext)?"center":"left";
writeindiv(text);
if(AT.ns4)AT.navtxt.visibility="show";
else{
AT.navtxt.style.visibility="visible";
AT.navtxt.style.display="block";
}
getboxheight();
if((AT.w3c||AT.ie4) && dofade){
if(AT.ie4||AT.ie5)AT.navtxt.style.filter="alpha(opacity=0)";
if(AT.ns6)AT.navtxt.style.MozOpacity=0;
AT.ieop=0;
AT.op_id=setInterval('incropacity()',50);
}}else{
if(mousefollow)hideAlttxt();
else AT.dy=setTimeout('hideAlttxt()',hideDelay);
}}

function hideAlttxt(){
if(AT.ns4)AT.navtxt.visibility="hide";
else{
AT.navtxt.style.display="none";
AT.navtxt.style.visibility="hidden";
}
movenavtxt(-AT.boxwidth-10,0);
writeindiv('');
}

function incropacity(){
if(AT.ieop<=100){
AT.ieop+=7;
if(AT.ie4||AT.ie5)AT.navtxt.style.filter="alpha(opacity="+AT.ieop+")";
if(AT.ns6)AT.navtxt.style.MozOpacity=AT.ieop/100;
}else clearInterval(AT.op_id);
}

function moveobj(evt){
mx=(AT.ie5||AT.ie4)?event.clientX:evt.pageX;
my=(AT.ie5||AT.ie4)?event.clientY:evt.pageY;
if(AT.ishover && AT.oktomove){
margin=(AT.ie4||AT.ie5)?5:25;
if(AT.ns6)if(document.height+27-window.innerHeight<0)margin=15;
if(AT.ns4)if(document.height-window.innerHeight<0)margin=10;
if(AT.ns4||AT.ns6)mx-=getpagescrollx();
if(AT.ns4)my-=getpagescrolly();
xoff=mx+xoffset;
yoff=(my+AT.boxheight+yoffset-((AT.ns6)?getpagescrolly():0)>=AT.w_y)? -5-AT.boxheight-yoffset: yoffset;
movenavtxt( Math.min(AT.w_x-AT.boxwidth-margin , Math.max(2,xoff))+getpagescrollx(), my+yoff+((!AT.ns6)?getpagescrolly():0));
if(!mousefollow)AT.oktomove=false;
}}


window.onload=function(){



    startit(); // fra quote.js











  AT.navtxt=(AT.ns4)?document.layers['navtxt']:(AT.ie4)?document.all['navtxt']:(AT.w3c)?document.getElementById('navtxt'):null;
  getboxwidth();
  getboxheight();
  getwindowdims();
  if(AT.ie4||AT.ie5&&dofade)AT.navtxt.style.filter="alpha(opacity=100)";
  AT.navtxt.onmouseover=function(){
  if(!mousefollow)clearTimeout(AT.dy);
  }
  AT.navtxt.onmouseout=function(){
  if(!mousefollow)AT.dy=setTimeout('hideAlttxt()',hideDelay);
  }
  if(AT.ns4)document.captureEvents(Event.MOUSEMOVE);
  document.onmousemove=moveobj;
  window.onresize=getwindowdims;
}
Avatar billede mclemens Nybegynder
27. april 2007 - 21:13 #6
Hmm, jeg er for langsom :D
Avatar billede mclemens Nybegynder
27. april 2007 - 21:15 #7
Fra quote.js er fjernet
<div class="quote_container"><div class="quote">
<script type="text/javascript">
og
</script>
</div></div>

og så onload funktionen flyttet over som Softspot nævner.
Avatar billede softspot Forsker
27. april 2007 - 21:24 #8
Jeg vil helst ikke lave den binding som mclemens foreslår, da det ødelægger indkapslingen/isoleringen af funktionaliteten i de enkelte JS-filer. Derfor synes jeg det er mindre "brutalt" at gøre window.onload-handleren bedre til at respektere andre onload-handlere. Hvis man gør det til en vane at vise hensyn til andre, så bliver det nemmere at få tingene til at fungere sammen :)
Avatar billede mclemens Nybegynder
27. april 2007 - 21:33 #9
Lyder fornuftigt nok Softspot, tror bare jeg
har for vane kun at køre en window.onload og
så starte de andre "onloads" fra den ene onload,
men ja - der er mindre arbejde ved at vise hensyn
til de andre loads istedet for at samle dem :o)
Avatar billede mclemens Nybegynder
27. april 2007 - 21:34 #10
^ - Altså oversat: Anbefaler også det Softspot siger.
Avatar billede Slettet bruger
27. april 2007 - 21:37 #11
Øh... jeg fatter ikke så meget af det I skriver... :-/ Men jeg prøver at arbejde lidt videre med det. :-)
Kommer herind til jer lidt senere, og giver en tilbagemelding.
Avatar billede Slettet bruger
27. april 2007 - 21:42 #12
Øh... lige 1 ting mere:
Jeg oprettede et spørgsmål tidligere, med et lign. problem, som jeg fik løst.
Jeg håber ikke at det tidligere problem + det nye problem, konflikter med hinanden???
I kan se det tidligere spørgsmål her: http://www.eksperten.dk/spm/770473

Jeg er MEGET villig til at kaste 100 points mere ind på dette spørgsmål (eller 200 til hver af jer), hvis bare jeg får løst problemerne!
Avatar billede softspot Forsker
27. april 2007 - 21:57 #13
Problemstillingen er nøjagtig den samme som i det spørgsmål du stillede dengang (og som jeg svarede på dengang :))... så hvis du følger samme opskrift som beskrevet dengang (og denne gang), så burde du løse problemet.
Avatar billede softspot Forsker
27. april 2007 - 21:58 #14
Det eneste du skal gøre er at udskifte window.onload-koden i alttext.js med den jeg har vist i indlæget 27/04-2007 21:09:36
Avatar billede Slettet bruger
28. april 2007 - 07:55 #15
Hejsa igen.

Jepper, så fik jeg det til at virke! :-)

Men først efter en del tid via "try ´n error" metoden, fandt jeg endelig ud af, at rækkefølgen af mine .js-filer havde STOR betydning.

Som sagt, forhøjer jeg glædeligt points til 200 (hvis det er nok?)

Og ja, selvfølgelig skal I begge to have points, for den store hjælp og gode vejledning.
Mange tusinde tak! :-)

Derfor:
Læg venligst et svar begge to, så jeg kan få afsluttet spørgsmålet.
Avatar billede mclemens Nybegynder
28. april 2007 - 08:00 #16
Jeg skal ikke have noget ;)
Softspot kom med løsningen.
Avatar billede Slettet bruger
28. april 2007 - 08:16 #17
mclemens:

Pjat med dig - kom du nu bare med et svar.
Du bidrog jo også med forklaring som gjorde, at jeg fattede det hele lidt mere. :-)

PS:
Jeg har netop oprettet et nyt spørgsmål her: http://www.eksperten.dk/spm/775559
Måske du har lyst til at kigge lidt på det?

Men glem nu ikke at lægge et lille svar her, vel? ;-)
Avatar billede softspot Forsker
28. april 2007 - 15:01 #18
Mit svar kommer her :)
Avatar billede softspot Forsker
28. april 2007 - 15:12 #19
Lige en kommentar til dit indlæg d. 28/04-2007 07:55:46: Som jeg nævnte i mit indlæg fra 27/04-2007 21:11:16 kunne det klares med at inkludere det ene script før det andet, men det er som sagt heller ikke en særlig fed binding at have imellem sine dokumenter, derfor foreslog jeg den anden løsning med at gøre din window.onload-handler bedre til at respektere evt. andre handlere... :)

Mht. point, så må man ikke give mere end 200 for et spørgsmål. For dette spørgsmål er 100 point længe fint, så du behøver ikke tænke i yderligere point :)

Og sidst men ikke mindst - Velbekomme :D
Avatar billede Slettet bruger
28. april 2007 - 15:13 #20
Hejsa igen, softspot. :-)

Så fik jeg det hele til at fungere. :-)

Jeg har dog valgt den orginale version af overLIB, fordi den vi arbejdede med, ikke virkede særligt godt i IE. Ihvertfald ikke i den sammensætning som jeg skal bruge scriptet i. Og det orginale scipt fungerer fint sammen med de andre scripts jeg bruger.
Men jeg savner den lækre "fade-in" effekt, og håber på at kunne overføre den effekt til det orginale script.

Jeg har derfor oprettet et nyt spørgsmål her: http://www.eksperten.dk/spm/775559
Måske du har lyst til at kigge lidt på det?
Avatar billede Slettet bruger
28. april 2007 - 15:15 #21
Vi sidder og skriver til hinanden samtidig. :-)

Ok, jeg dropper at forhøje points her - men hvis du er kode-supermand nok til at kunne klare det nye spørgsmål, slipper du ikke for at modtage mindre end 200 points! :-)
Avatar billede Slettet bruger
28. april 2007 - 15:23 #22
...og hvis du er hurtig, kan du se tingene i funktion på mit midlertidige website her:
webfab.dk/galleri.php
og
webfab.dk/theend.asp
Avatar billede softspot Forsker
28. april 2007 - 15:23 #23
Tak for point :)
Avatar billede Slettet bruger
28. april 2007 - 15:24 #24
Hmmm... intet link uden www.
Prøver igen:

www.webfab.dk/galleri.php
og
www.webfab.dk/theend.asp
Avatar billede roenving Novice
28. april 2007 - 15:54 #25
(eller http:// !-)
Avatar billede Slettet bruger
28. april 2007 - 16:00 #26
roenving:
Ja. :-)

Men websites uden "http://www." virker stadig, hvis de da har angivet en ordentligt/valid doctype.
Ide: Måske man burde lade være med at bruge "http://www.", og derved lade alle M$ Frontpage-websites dø? Hmmm... den ide burde overvejes seriøst. :-)
Avatar billede softspot Forsker
28. april 2007 - 16:06 #27
Det har da ikke noget med doctypen at gøre, det er da et spørgsmål om hvordan din DNS er sat op :)
Avatar billede Slettet bruger
28. april 2007 - 16:38 #28
softspot:
Nå! Det troede jeg da ellers. Så må jeg have taget fejl... :-/
Der kan man bare se - man lærer noget nyt hver dag! :-)
Avatar billede Slettet bruger
28. april 2007 - 16:40 #29
Aha! Så er det måske derfor, at man skal placere sine filer indeni "wwwroot" på sit domaine/webhotel?
Avatar billede Slettet bruger
28. april 2007 - 16:41 #30
Men var http://www.eksperten.dk/spm/775559 for svær en nød at knække? Eller...?
Avatar billede roenving Novice
28. april 2007 - 16:45 #31
-- og jeg hentydede til ekspertens 'vis dog links'-maskine, som tager udgangspunkt i, om der enten er en protokol eller www for at vise links:

http://www.eksperten.dk/spm/775526

http://eksperten.dk/spm/775526

www.eksperten.dk/spm/775526

eksperten.dk/spm/775526
Avatar billede softspot Forsker
28. april 2007 - 16:46 #32
Den virker lidt for stor for mig lige på dette tidspunkt - jeg har lige nogle andre projekter hængende om ørerne som har prioritet. Jeg er dog sikker på at der nok skal komme en forbi som kan hjælpe dig med den del.

NB: siden kommer med scriptfejl når jeg forsøger at komme ind på den...
Avatar billede Ny bruger Nybegynder

Din løsning...

Tilladte BB-code-tags: [b]fed[/b] [i]kursiv[/i] [u]understreget[/u] Web- og emailadresser omdannes automatisk til links. Der sættes "nofollow" på alle links.

Loading billede Opret Preview
Kategori
Vi tilbyder markedets bedste kurser inden for webudvikling

Log ind eller opret profil

Hov!

For at kunne deltage på Computerworld Eksperten skal du være logget ind.

Det er heldigvis nemt at oprette en bruger: Det tager to minutter og du kan vælge at bruge enten e-mail, Facebook eller Google som login.

Du kan også logge ind via nedenstående tjenester