logo-dw

Go Back   Dreamweaver Club Forums > Hand Coders Forum > General
Register FAQ Members List Search Today's Posts Mark Forums Read

Reply
 
Thread Tools Display Modes
Old 07-16-2008, 06:24 PM   #1
swissbeets
 
Join Date: Jun 2008
Posts: 57
Default site validation problems

i have just got my site live and it being my first still needs a lot of work, but i wanted to put a basic working site up. I am at the point now that i would like to make my site searchable on google. but first i would like to validate it. i have gone to the

http://validator.w3.org/

and am getting a lot of errors specifically in the Javascript that dreamweaver wrote for my rollover images in my navigation bar. (about 50) i have heard that this code is not the best way to do it but i do not want to take the time to fix something that is already working unless it is absolutely the cause of my problems

has anyone else come into problems with their javascript as the validated their site?
swissbeets is offline   Reply With Quote
Old 07-16-2008, 10:55 PM   #2
Cary
Cary's Avatar
 
Join Date: Apr 2007
Location: San Diego, CA
Posts: 723
Default

Not really sure what javascript DW has inserted in your page, but let's suppose you have something like this:

HTML Code:
<script type="text/javascript">
<!--
function MM_swapImgRestore() { //v3.0
  var i,x,a=document.MM_sr; for(i=0;a&&i<a.length&&(x=a[i])&&x.oSrc;i++) x.src=x.oSrc;
}
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.01
  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 && d.getElementById) x=d.getElementById(n); return x;
}

function MM_swapImage() { //v3.0
  var i,j=0,x,a=MM_swapImage.arguments; document.MM_sr=new Array; for(i=0;i<(a.length-2);i+=3)
   if ((x=MM_findObj(a[i]))!=null){document.MM_sr[j++]=x; if(!x.oSrc) x.oSrc=x.src; x.src=a[i+2];}
}
//-->
</script>
Cut all of that out and past it into a blank page which you can save as dw.js or something like that. Remove the script and comment tags at the beginning and end so all you have left in your new .js file is this:

Code:
function MM_swapImgRestore() { //v3.0
  var i,x,a=document.MM_sr; for(i=0;a&&i<a.length&&(x=a[i])&&x.oSrc;i++) x.src=x.oSrc;
}
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.01
  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 && d.getElementById) x=d.getElementById(n); return x;
}

function MM_swapImage() { //v3.0
  var i,j=0,x,a=MM_swapImage.arguments; document.MM_sr=new Array; for(i=0;i<(a.length-2);i+=3)
   if ((x=MM_findObj(a[i]))!=null){document.MM_sr[j++]=x; if(!x.oSrc) x.oSrc=x.src; x.src=a[i+2];}
}
Then in your html you replace the original javascript code you just moved to an external file with this:

HTML Code:
<script src="dw.js" type="text/javascript"></script>
Make sure you have the correct file name and path. In the example above, dw.js is in the same folder as the html page.
Cary is offline   Reply With Quote
Old 07-16-2008, 11:09 PM   #3
swissbeets
 
Join Date: Jun 2008
Posts: 57
Default

PHP Code:
<script type="text/javascript">
function 
MM_preloadImages() { //v3.0
  
var d=document; if(d.images){ if(!d.MM_pd.MM_p=new Array();
    var 
i,j=d.MM_p.length,a=MM_preloadImages.arguments; for(i=0i<a.lengthi++)
    if (
a[i].indexOf("#")!=0){ d.MM_p[j]=new Imaged.MM_p[j++].src=a[i];}}
}
function 
MM_findObj(nd) { //v4.01
  
var p,i,x;  if(!dd=document; if((p=n.indexOf("?"))>0&&parent.frames.length) {
    
d=parent.frames[n.substring(p+1)].documentn=n.substring(0,p);}
  if(!(
x=d[n])&&d.allx=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(!
&& d.getElementByIdx=d.getElementById(n); return x;
}
function 
MM_nbGroup(eventgrpName) { //v6.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 trueimg.MM_up args[3]; img.MM_dn img.src;
      if ((
nbArr document[grpName]) == nullnbArr document[grpName] = new Array();
      
nbArr[nbArr.length] = img;
      for (
i=4args.length-1i+=2) if ((img MM_findObj(args[i])) != null) {
        if (!
img.MM_upimg.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=1args.length-1i+=3) if ((img MM_findObj(args[i])) != null) {
      if (!
img.MM_upimg.MM_up img.src;
      
img.src = (img.MM_dn && args[i+2]) ? args[i+2] : ((args[i+1])? args[i+1] : img.MM_up);
      
nbArr[nbArr.length] = img;
    }
  } else if (
event == "out" ) {
    for (
i=0document.MM_nbOver.lengthi++) {
      
img document.MM_nbOver[i]; img.src = (img.MM_dn) ? img.MM_dn img.MM_up; }
  } else if (
event == "down") {
    
nbArr document[grpName];
    if (
nbArr)
      for (
i=0nbArr.lengthi++) { img=nbArr[i]; img.src img.MM_upimg.MM_dn 0; }
    
document[grpName] = nbArr = new Array();
    for (
i=2args.length-1i+=2) if ((img MM_findObj(args[i])) != null) {
      if (!
img.MM_upimg.MM_up img.src;
      
img.src img.MM_dn = (args[i+1])? args[i+1] : img.MM_up;
      
nbArr[nbArr.length] = img;
  } }
}
</script> 
this is my code and i saved it as functions.js

then i originally had it in my header.php because the header is on every page just like i need the javascript for my navigation.......

here is the code there (they are both located in the includes/ folder
PHP Code:
<html>
    <
head>
        <
titleBig Pecker's Stuff.com
        </title>
        <link href="stylesheets/public.css" media="all" rel="stylesheet" type="text/css" />
        <script src="includes/functions.js" type="text/javascript"></script>
        <meta name="description" content=" The place to get all of your Big Pecker'
s Merchandise!">
        <meta name="
keywords" content=" Bigpeckersbig peckersbigpeckerbig peckersurf waxbig waxsurfwaxBig peckers surfwax">
        <meta name="
verify-v1" content="EqMuWWdeHiXrDpHoJ1r0r7tbJe9pbWjEHqOxr/We16Y=" />
    </head>
    <body>
        <div id="
header">
            <h1> </h1>
        </div>
        <div id="
main"> 
but it is not working for me, the javascript is no longer being used and i dont get a rollover image

any ideas?
swissbeets is offline   Reply With Quote
Old 07-17-2008, 01:31 AM   #4
Cary
Cary's Avatar
 
Join Date: Apr 2007
Location: San Diego, CA
Posts: 723
Default

If the includes folder is in the root folder of your site, then you can try adding a slash to the beginning of the path to make it root-relative, like this:

HTML Code:
<script src="/includes/functions.js" type="text/javascript"></script>
Then all html pages will look for the includes folder in the root folder and then find the js file. The way you currently have it, pages will only see the js file if they are located in the includes folder. I suspect you have them elsewhere.
Cary is offline   Reply With Quote
Old 07-17-2008, 05:42 PM   #5
swissbeets
 
Join Date: Jun 2008
Posts: 57
Default

when i add <?php require_once("includes/functions.js"); ?>

it works but i still dont think i will be able to validate it, how important is validating a site?
swissbeets is offline   Reply With Quote
Old 07-18-2008, 12:47 PM   #6
Cary
Cary's Avatar
 
Join Date: Apr 2007
Location: San Diego, CA
Posts: 723
Default

Just to be sure it's not just the way you pasted the code here, but make sure your function.js file's javascript code does not begin and end with the opening and closing script tags since those are html and do not belong within a javascript file.

If the tags were there, try the previously suggested method again after removing the script tags. Using php to include the javascript doesn't gain anything. You would be just as well off using your original include file which already contained the javascript.

Validating a site is important because it means browsers won't have to guess how to handle bad code because there won't be any. Different browsers make different adjustments for bad code, so the page may look good in one browser, but horrible in another.

Because you can't test your pages in browsers that don't yet exist, you can be fairly confident your pages will render correctly in future browsers only if there are no mistakes for those browsers to deal with.
Cary is offline   Reply With Quote
Reply


Thread Tools
Display Modes

Posting Rules
You may not post new threads
You may not post replies
You may not post attachments
You may not edit your posts

BB code is On
Smilies are On
[IMG] code is On
HTML code is Off

Forum Jump


All times are GMT. The time now is 08:36 PM.


Powered by vBulletin® Version 3.8.7
Copyright ©2000 - 2017, vBulletin Solutions, Inc.
Copyright 2006 DreamweaverClub.com