Avatar billede razorblade Nybegynder
10. august 2006 - 07:39 Der er 1 kommentar og
1 løsning

Bruge samme stykke Javascript 2 steder - how?

Hejsa.
Jeg har et stykke javascript som printer noget database indhold ud til skærmen og fader det frem og væk.
Det script vil jeg gerne benytte 2 steder på samme side, men hvis jeg gør det vil ikke virke.
Lige meget hvad jeg prøver that is.

Koden for dofade.asp:
*************************

<script type="text/javascript">
  var liste = new Array();
  var fadeLayers = ["l1","l2"];
  var fadeIndex = 100;
  var isIE = true;
  var ifmWin;
  var messageTimer;

  function setWindow(objWin) {
    ifmWin = objWin;
  }

  function addSMS(html) {
    liste[liste.length] = html;
  }

  window.onload = function() {
    fadeIndex = 0;
    fadeLayer(10);
    isIE = window.navigator.appVersion.indexOf('MSIE') > -1;
  }

  function showHelp() {
 
    clearTimeout(messageTimer);
    document.getElementById(fadeLayers[1]).innerHTML = '<div id="navn">SMS til 1919 -<br />Maks 160 tegn.</div><div id="besked">Send en SMS til 1919 med indeholdet:<br />onSMS din besked (10,-)<br />Eksempel: "onSMS Hej alle. Kig forbi min profil"<br /><br /><strong>Bemærk:</strong><br />Hvis du har angivet dit mobil nummer i din profil vil din besked blive vist sammen med dit profil navn og billede.</div>';
    fadeIndex = 100;
    fadeLayer(10);
 
    return true;
  }

  function fadeLayer(fadeDelay) {
    if(fadeIndex > 0) {
      // skift opacity med 5% i hver retning for de 2 lag
      fadeIndex -= 5;
   
      if(isIE) {
        // fade det aktive lag ned
        document.getElementById(fadeLayers[0]).style.filter = "alpha(opacity=" + fadeIndex + ")";

        // fade det skjulte lag op
        document.getElementById(fadeLayers[1]).style.filter = "alpha(opacity=" + parseInt(100-fadeIndex) + ")";
      }
      else {
        // fade det aktive lag ned
        document.getElementById(fadeLayers[0]).style.opacity = (fadeIndex/100).toString();

        // fade det skjulte lag op
        document.getElementById(fadeLayers[1]).style.opacity = (1-parseFloat(fadeIndex/100)).toString();
      }
   
      messageTimer = setTimeout("fadeLayer()", 25);
    }
    else {
      // byt rundt på lagene ved at flytte den første ned til sidst i listen
      fadeLayers.push(fadeLayers.shift());
   
      if(liste.length < 3 && ifmWin) ifmWin.location.reload(true);
   
      // indsæt html for den næste sms og slet den fra sms-listen
      document.getElementById(fadeLayers[1]).innerHTML = liste.shift();
   
      // sæt fadeIndex så den er klar næste gang der skal fades
      fadeIndex = 100;
   
      // sæt tiden for næste fade
      messageTimer = setTimeout("fadeLayer()", (fadeDelay?fadeDelay:10000)); // 3 sekunder bare for testens skyld
    }
  }
</script>

<iframe src="../shoutouts/fadescript.asp" id="fadetekster" height="0" width="0" style="display:none;"></iframe>
<div style="position:relative">
  <div id="l1" style="position:absolute;left:0;top:0;width:140px;height:150px;filter:alpha(opacity=0);opacity:0"></div>
  <div id="l2" style="position:absolute;left:0;top:0;width:140px;height:150px;filter:alpha(opacity=0);opacity:0"></div>
</div>

Koden for fadescript.asp:
**************************

<SCRIPT type="text/javascript">
    //window.setTimeout("location.reload();", 5500);
</SCRIPT>

<!-- #include file="../includes/sql.inc" -->

<%
sql = "select * from beskedbox_test order by id DESC limit 15"
set rs = conn.execute(sql)
%>

<script type="text/javascript">
parent.setWindow(window);

<%
if not rs.bof or rs.eof then

    do until rs.eof
    besked = right(rs("besked"), len(rs("besked"))-6)
 
    nummer = rs("nummer")

    if nummer <> "" then
        sqlnum = "select * from Members,profil_billede where Members.MemberID=profil_billede.BEID and Members.Telefon="&nummer&""
        set rsnum = conn.execute(sqlnum)
    end if

    if rsnum.bof or rsnum.eof then
        nick = "<a href=\'\'>Opret Profil</a>"
        pic = "../images/shoutouts/saadan.gif"
    else
        nick = "<a href=\'\'>"&rsnum("nickname")&"</a>"
 
        if rsnum("pic") <> "" and rsnum("Billede_Profil") = 1 then
            pic = rsnum("pic")
        else
            pic = "../images/shoutouts/no_picture.gif"
        end if
    end if
%>
 
parent.addSMS('<div id="billede"><img src="<%=pic%>" width="125" height="100" /></div><div id="navn"><%=nick%></div><div id="besked"><%=besked%></div><a href="#" onclick="showHelp(); return false;"><div id="howto">S&aring;dan g&oslash;r du</div></a>');

    <%
    rs.movenext
    loop
end if
%>

</script>

**************************************

Så sagen er. Hvordan kan jeg benytte ovenstående scripts 2 gange på samme side til 2 forskellige ting?

Hvis jeg bare laver et kopi af hver fil og kalder dem noget andet så kommer der jo en konflikt da der er de samme funktions navne osv.

Håber ikke det er alt for uoverskueligt og at i kan hjælpe da jeg er lidt i tidspres :)

PS:
Det skal siges at jeg inkluderer ovenstående scripts på en 3. side vha <!-- #include file="" --> og det jo så er derfor der kommer konflikter hvis jeg inkluderer en fil med samme kode da der er samme funktions navne :)
Avatar billede aerobee Nybegynder
12. august 2006 - 00:12 #1
Øv
Avatar billede razorblade Nybegynder
12. august 2006 - 00:13 #2
Lukker
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