SitePoint Sponsor

User Tag List

Results 1 to 3 of 3

Hybrid View

  1. #1
    SitePoint Zealot
    Join Date
    Mar 2005
    Posts
    166
    Mentioned
    0 Post(s)
    Tagged
    0 Thread(s)

    No access to main document js functions after include file

    Hi guys,

    I'm having a headache trying to call js functions from my main page, from a included page.

    I added a slide menu to control administrative tools on my main page using server side include:
    <%if Session("Grupo")="Admin" OR Session("Grupo")="Superadmin" then %>
    <!--#include file="slide_menu.asp" -->
    <%end if
    %>

    And now i'm tying to call js functions and document objects from my main page via the menu, but always get null or unexistence object errors...

    Any clue what I'm missing?

  2. #2
    SitePoint Wizard
    Join Date
    Nov 2004
    Location
    Nelson BC
    Posts
    2,310
    Mentioned
    0 Post(s)
    Tagged
    0 Thread(s)
    Maybe the objects that are created normally (without the include file) are being squashed by some JS that is in the include file. The most obvious thing would be that both sets of JS are using the window.onload event and the include file is overwriting the original.

  3. #3
    SitePoint Zealot
    Join Date
    Mar 2005
    Posts
    166
    Mentioned
    0 Post(s)
    Tagged
    0 Thread(s)
    Quote Originally Posted by jimfraser View Post
    Maybe the objects that are created normally (without the include file) are being squashed by some JS that is in the include file. The most obvious thing would be that both sets of JS are using the window.onload event and the include file is overwriting the original.
    I did research the include code (whitch is almost pure asp inspite I do two SRC insertion of js code (to create the slide menu) )and found no window.onload.
    But i found this three lines at the top of one os the js inserted:

    NS6 = (document.getElementById&&!document.all)
    IE = (document.all)
    NS = (navigator.appName=="Netscape" && navigator.appVersion.charAt(0)=="4")

    Taking those off, the slide menu desapear from my main page...

    I also did test shifting the include aproach to a regular one, filling the main page with the js code from my two SRC file insertions, but the scene didn't change at all..

    even a simple function test() {alert("test")} can't be called from my slide menu href...


    Below is the code of my two js insertions (to build the slide menu):
    here's where I do edit to point to specific href location in order to call the main js functions and load pages within a div:
    <!--

    /*
    Configure menu styles below
    NOTE: To edit the link colors, go to the STYLE tags and edit the ssm2Items colors
    */


    YOffset=180; // no quotes!!
    XOffset=0;
    staticYOffset=100; // no quotes!!
    slideSpeed=10 // no quotes!!
    waitTime=1000; // no quotes!! this sets the time the menu stays out for after the mouse goes off it.
    menuBGColor="#666699";
    menuIsStatic="yes"; //this sets whether menu should stay static on the screen
    menuWidth=200; // Must be a multiple of 10! no quotes!!
    menuCols=2;
    hdrFontFamily="verdana";
    hdrFontSize="1";
    hdrFontColor="white";
    hdrBGColor="#666699";
    hdrAlign="left";
    hdrVAlign="center";
    hdrHeight="15";
    linkFontFamily="Verdana";
    linkFontSize="1";
    linkBGColor="white";
    linkOverBGColor="#ECEEEC";
    linkTarget="_top";
    linkAlign="left";
    barBGColor="#444444";
    barFontFamily="Verdana";
    barFontSize="1";
    barFontColor="white";
    barVAlign="center";
    barWidth=20; // no quotes!!
    barText="MENSAGENS"; // <IMG> tag supported. Put exact html for an image to show.

    ///////////////////////////

    // ssmItems[...]=[name, link, target, colspan, endrow?] - leave 'link' and 'target' blank to make a header
    ssmItems[0]=["Administrative Tolls"] //create header
    ssmItems[1]=["Bann user", "javascript:test();", ""]
    ssmItems[2]=["Reset password", "msg.asp?msg=reset",""]
    ssmItems[3]=["New user", "msg.asp?msg=new", ""]

    ssmItems[4]=["Logs", "", ""] //create header
    ssmItems[5]=["Day log", "msg.asp?msg=logs", ""]


    buildMenu();

    //-->

    Here is the html constructor:

    NS6 = (document.getElementById&&!document.all)
    IE = (document.all)
    NS = (navigator.appName=="Netscape" && navigator.appVersion.charAt(0)=="4")

    tempBar='';barBuilt=0;ssmItems=new Array();

    function truebody(){
    return (document.compatMode!="BackCompat")? document.documentElement : document.body
    }

    moving=setTimeout('null',1)
    function moveOut() {
    if ((NS6||NS)&&parseInt(ssm.left)<0 || IE && ssm.pixelLeft<0) {
    clearTimeout(moving);moving = setTimeout('moveOut()', slideSpeed);slideMenu(10)}
    else {clearTimeout(moving);moving=setTimeout('null',1)}};
    function moveBack() {clearTimeout(moving);moving = setTimeout('moveBack1()', waitTime)}
    function moveBack1() {
    if ((NS6||NS) && parseInt(ssm.left)>(-menuWidth) || IE && ssm.pixelLeft>(-menuWidth)) {
    clearTimeout(moving);moving = setTimeout('moveBack1()', slideSpeed);slideMenu(-10)}
    else {clearTimeout(moving);moving=setTimeout('null',1)}}
    function slideMenu(num){
    if (IE) {ssm.pixelLeft += num;}
    if (NS6) {ssm.left = parseInt(ssm.left)+num+"px";}
    if (NS) {ssm.left = parseInt(ssm.left)+num; bssm.clip.right+=num;bssm2.clip.right+=num;}}

    function makeStatic() {
    if (NS||NS6) {winY = window.pageYOffset;}
    if (IE) {winY = truebody().scrollTop;}
    if (NS6||IE||NS) {
    if (winY!=lastY&&winY>YOffset-staticYOffset) {
    smooth = .2 * (winY - lastY - YOffset + staticYOffset);}
    else if (YOffset-staticYOffset+lastY>YOffset-staticYOffset) {
    smooth = .2 * (winY - lastY - (YOffset-(YOffset-winY)));}
    else {smooth=0}
    if(smooth > 0) smooth = Math.ceil(smooth);
    else smooth = Math.floor(smooth);
    if (IE) bssm.pixelTop+=smooth;
    if (NS6) bssm.top=parseInt(bssm.top)+smooth+"px"
    if (NS) bssm.top=parseInt(bssm.top)+smooth
    lastY = lastY+smooth;
    setTimeout('makeStatic()', 1)}}

    function buildBar() {
    if(barText.indexOf('<IMG')>-1) {tempBar=barText}
    else{for (b=0;b<barText.length;b++) {tempBar+=barText.charAt(b)+"<BR>"}}
    document.write('<td align="center" rowspan="100" width="'+barWidth+'" bgcolor="'+barBGColor+'" valign="'+barVAlign+'"><p align="center"><font face="'+barFontFamily+'" Size="'+barFontSize+'" COLOR="'+barFontColor+'"><B>'+tempBar+'</B></font></p></TD>')}

    function initSlide() {
    if (NS6){ssm=document.getElementById("thessm").style;bssm=document.getElementById("basessm").style;
    bssm.clip="rect(0 "+document.getElementById("thessm").offsetWidth+" "+document.getElementById("thessm").offsetHeight+" 0)";ssm.visibility="visible";}
    else if (IE) {ssm=document.all("thessm").style;bssm=document.all("basessm").style
    bssm.clip="rect(0 "+thessm.offsetWidth+" "+thessm.offsetHeight+" 0)";bssm.visibility = "visible";}
    else if (NS) {bssm=document.layers["basessm1"];
    bssm2=bssm.document.layers["basessm2"];ssm=bssm2.document.layers["thessm"];
    bssm2.clip.left=0;ssm.visibility = "show";}
    if (menuIsStatic=="yes") makeStatic();}

    function buildMenu() {
    if (IE||NS6) {document.write('<DIV ID="basessm" style="visibility:hidden;Position : Absolute ;Left : '+XOffset+'px ;Top : '+YOffset+'px ;Z-Index : 20;width:'+(menuWidth+barWidth+10)+'px"><DIV ID="thessm" style="Position : Absolute ;Left : '+(-menuWidth)+'px ;Top : 0 ;Z-Index : 20;" onmouseover="moveOut()" onmouseout="moveBack()">')}
    if (NS) {document.write('<LAYER name="basessm1" top="'+YOffset+'" LEFT='+XOffset+' visibility="show"><ILAYER name="basessm2"><LAYER visibility="hide" name="thessm" bgcolor="'+menuBGColor+'" left="'+(-menuWidth)+'" onmouseover="moveOut()" onmouseout="moveBack()">')}
    if (NS6){document.write('<table border="0" cellpadding="0" cellspacing="0" width="'+(menuWidth+barWidth+2)+'px" bgcolor="'+menuBGColor+'"><TR><TD>')}
    document.write('<table border="0" cellpadding="0" cellspacing="1" width="'+(menuWidth+barWidth+2)+'px" bgcolor="'+menuBGColor+'">');
    for(i=0;i<ssmItems.length;i++) {
    if(!ssmItems[i][3]){ssmItems[i][3]=menuCols;ssmItems[i][5]=menuWidth-1}
    else if(ssmItems[i][3]!=menuCols)ssmItems[i][5]=Math.round(menuWidth*(ssmItems[i][3]/menuCols)-1);
    if(ssmItems[i-1]&&ssmItems[i-1][4]!="no"){document.write('<TR>')}
    if(!ssmItems[i][1]){
    document.write('<td bgcolor="'+hdrBGColor+'" HEIGHT="'+hdrHeight+'px" ALIGN="'+hdrAlign+'" VALIGN="'+hdrVAlign+'" WIDTH="'+ssmItems[i][5]+'" COLSPAN="'+ssmItems[i][3]+'">&nbsp;<font face="'+hdrFontFamily+'" Size="'+hdrFontSize+'" COLOR="'+hdrFontColor+'"><b>'+ssmItems[i][0]+'</b></font></td>')}
    else {if(!ssmItems[i][2])ssmItems[i][2]=linkTarget;
    document.write('<TD BGCOLOR="'+linkBGColor+'" onmouseover="bgColor=\''+linkOverBGColor+'\'" onmouseout="bgColor=\''+linkBGColor+'\'" WIDTH="'+ssmItems[i][5]+'px" COLSPAN="'+ssmItems[i][3]+'"><ILAYER><LAYER onmouseover="bgColor=\''+linkOverBGColor+'\'" onmouseout="bgColor=\''+linkBGColor+'\'" WIDTH="100&#37;" ALIGN="'+linkAlign+'"><DIV ALIGN="'+linkAlign+'"><FONT face="'+linkFontFamily+'" Size="'+linkFontSize+'">&nbsp;<A HREF="'+ssmItems[i][1]+'" target="'+ssmItems[i][2]+'" CLASS="ssmItems">'+ssmItems[i][0]+'</DIV></LAYER></ILAYER></TD>')}
    if(ssmItems[i][4]!="no"&&barBuilt==0){buildBar();barBuilt=1}
    if(ssmItems[i][4]!="no"){document.write('</TR>')}}
    document.write('</table>')
    if (NS6){document.write('</TD></TR></TABLE>')}
    if (IE||NS6) {document.write('</DIV></DIV>')}
    if (NS) {document.write('</LAYER></ILAYER></LAYER>')}
    theleft=-menuWidth;lastY=0;setTimeout('initSlide();', 1)}


Bookmarks

Posting Permissions

  • You may not post new threads
  • You may not post replies
  • You may not post attachments
  • You may not edit your posts
  •