Problema con codigo al intentar validar en W3C

Iniciado por Neilprydehack, 7 Enero 2011, 12:25 PM

0 Miembros y 1 Visitante están viendo este tema.

Neilprydehack

Buenos días tengo un problema con la validación de mi código y me estoy volviendo loco para resolverlo.

Así es lo que tengo en el index.php:

<meta http-equiv="Content-Type" content="text/html; <?php echo _ISO; ?>" />
<link rel="stylesheet" href="<?php echo $this->baseurl ?>/templates/system/css/system.css" type="text/css" />
<link rel="stylesheet" href="<?php echo $this->baseurl ?>/templates/system/css/general.css" type="text/css" />
<link rel="stylesheet" href="<?php echo $templateurl; ?>/css/template.css" type="text/css" />
<link rel="stylesheet" href="<?php echo $templateurl; ?>/css/style.css" type="text/css" />
<script src="<?php echo $templateurl; ?>/js/jquery-1.3.2.js" type="text/javascript"></script>
<script src="<?php echo $templateurl; ?>/js/jquery-slide.js" type="text/javascript"></script>
<script src="<?php echo $templateurl; ?>/js/ie.js" type="text/javascript"></script>

      <!-- Header_gallery -->
<script type="text/javascript">
var $j = jQuery.noConflict();
$j('<img />')[0].src = '<?php echo $templateurl; ?>/images/header/1.jpg';
$j('<img />')[0].src = '<?php echo $templateurl; ?>/images/header/2.jpg';
$j('<img />')[0].src = '<?php echo $templateurl; ?>/images/header/3.jpg';

Y me da los siguientes error en todos:
$j('<img />')[0].src = '<?php echo $templateurl; ?>/images/header/1.jpg';
required attribute "src" not specified
required attribute "alt" not specified
document type does not allow element "img" here
El error lo da aquí: <img />

No sé si alguien sabría decirme que estoy haciendo mal.

Muchas gracias

AFelipeTrujillo

pero tan raro que se lo arroje el en script .... si separa el codigo javascript del html ??

Neilprydehack

Hola, gracias por tu respuesta,

Te explico:

Intento poner 3 imagenes que se cambien automáticamente a una velocidad determinada, esto va en el index.php de la plantilla, te escribo el código del header:

<!-- Header_gallery -->
<script type="text/javascript">
var $j = jQuery.noConflict();
$j('<img />')[0].src = '<?php echo $templateurl; ?>/images/header/1.jpg';
$j('<img />')[0].src = '<?php echo $templateurl; ?>/images/header/2.jpg';
$j('<img />')[0].src = '<?php echo $templateurl; ?>/images/header/3.jpg';

$j(function() {
var fx, cbox = 1;//$('input:checkbox').click(start)[0];
//cbox.checked = true;

var markup = '<div id="slideshow">'
+ '<img src="<?php echo $templateurl; ?>/images/header/1.jpg" alt=""><img src="<?php echo $templateurl; ?>/images/header/2.jpg" alt=""><img src="<?php echo $templateurl; ?>/images/header/3.jpg" alt="">'
+ '</div>';

function start() {
$j('#slideshow').cycle('stop').remove();
$j('#show').append(markup);
$j('#effect').html(fx);
$j('#slideshow').cycle({
fx: fx,
timeout: 5000,
delay: -1000,
after: onAfter,
sync: 1
});
}

function onAfter(curr,next,opts) {
var msg = 'Slide ' + (opts.currSlide + 1) + ' of ' + opts.slideCount;
$j('#caption').html(msg);
};

fx = $j.trim("zoom");
start();
});
</script>
<!-- Header_gallery_end -->

bizco

si intentas validar esto:

Citar<?php echo $templateurl; ?.......

te va a dar error, tienes que validar una vez procesado por php. de todos modos mejor que pongas todo el codigo y digas si quieres valiar html xhtml ....

Neilprydehack

Buenos días bizco,

Quiero validar xhtml, aquí te escribo el código y te comento:

// no direct access

defined( '_JEXEC' ) or die( 'Restricted access' );

?>

<!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" xml:lang="<?php echo $this->language; ?>" lang="<?php echo $this->language; ?>" >

<head>

<jdoc:include type="head" />



<?php

   global $templateurl ;

   $templateurl = $this -> baseurl . '/nombre de mi plantilla' ;

   $js = $templateurl.'/js/';

   $css = $templateurl.'/css/';

?>

<meta http-equiv="Content-Type" content="text/html; <?php echo _ISO; ?>" />

<link rel="stylesheet" href="<?php echo $this->baseurl ?>/templates/system/css/system.css" type="text/css" />

<link rel="stylesheet" href="<?php echo $this->baseurl ?>/templates/system/css/general.css" type="text/css" />

<link rel="stylesheet" href="<?php echo $templateurl; ?>/css/template.css" type="text/css" />

<link rel="stylesheet" href="<?php echo $templateurl; ?>/css/style.css" type="text/css" />

<script src="<?php echo $templateurl; ?>/js/jquery-1.3.2.js" type="text/javascript"></script>

<script src="<?php echo $templateurl; ?>/js/jquery-slide.js" type="text/javascript"></script>

<script src="<?php echo $templateurl; ?>/js/ie.js" type="text/javascript"></script>



      <!-- Header_gallery -->

<script type="text/javascript">

var $j = jQuery.noConflict();

$j('<img />')[0].src = '<?php echo $templateurl; ?>/images/header/1.jpg';

$j('<img />')[0].src = '<?php echo $templateurl; ?>/images/header/2.jpg';

$j('<img />')[0].src = '<?php echo $templateurl; ?>/images/header/3.jpg';



$j(function() {

   var fx,   cbox = 1;//$('input:checkbox').click(start)[0];

   //cbox.checked = true;

   

   var markup = '<div id="slideshow">'

      + '<img src="<?php echo $templateurl; ?>/images/header/1.jpg"><img src="<?php echo $templateurl; ?>/images/header/2.jpg"><img src="<?php echo $templateurl; ?>/images/header/3.jpg">'

      + '</div>';

      

   function start() {

      $j('#slideshow').cycle('stop').remove();

        $j('#show').append(markup);

      $j('#effect').html(fx);

      $j('#slideshow').cycle({

         fx: fx,

         timeout: 4000,

         delay:  -1000,

         after: onAfter,

         sync: 1

      });

   }



   function onAfter(curr,next,opts) {

      var msg = 'Slide ' + (opts.currSlide + 1) + ' of ' + opts.slideCount;

      $j('#caption').html(msg);

   };

   

   fx = $j.trim("zoom");

   start();

});

</script>

                     <!-- Header_gallery_end -->

<!--[if IE]>

   <link href="<?php echo $templateurl; ?>/css/ieonly.css" rel="stylesheet" type="text/css" />

<![endif]-->



</head>

<body dir="ltr">

<div id="body">

   <div class="outer">

      <div id="shopcart">

         <jdoc:include type="modules" name="user2" />

      </div>

      <div id="currency"><jdoc:include type="modules" name="user1"  style="top" /></div>

      <div  id="logo">

         <a href="<?php echo $mainframe -> getCfg ( 'live_site' ) ; ?>">

            <img src="<?php echo $templateurl; ?>/images/logo.jpg" alt="<?php echo $mainframe->getCfg('sitename') ; ?>" />

         </a>

      </div>

      <div id="search"><jdoc:include type="modules" name="user4" /></div>

      <div id="topmenu">

         <jdoc:include type="modules" name="user3" />

      </div>

      <div class="clear"></div>

      

      <div id="header" class="outer">

         <div class="inner">

            <div id="shop_now">

               <div id="show">

                  <div style="overflow: hidden; position: relative;" id="slideshow">

                     <img style="position: absolute; top: 0px; left: 0px; display: none; z-index: 9; opacity: 1; width: 991px; height: 334px;" src="<?php echo $templateurl; ?>/images/header/1.jpg">

                     <img style="position: absolute; top: 0px; left: 0px; display: none; z-index: 9; opacity: 1; width: 991px; height: 334px;" src="<?php echo $templateurl; ?>/images/header/2.jpg">

                     <img style="position: absolute; top: 0px; left: 0px; display: none; z-index: 9; opacity: 1; width: 991px; height: 334px;" src="<?php echo $templateurl; ?>/images/header/3.jpg">

                  </div>

Este es el código de toda la parte del head de las imágenes, el problema lo da al validar por los archivos .js
Que podría hacer? y luego otro problema es que si ya estoy trabajando con una librería jquery, al meter un módulo que se llama gttranslate que traduce la página en varios idiomas, no me va a funcionar bien ya que trabaja con otra librería jquery con lo cual tendría que quitar la primera libreria, uff que follon nose que solución sería mejor para tenerlo todo correcto

Nakp

error del parser... por cierto seria mejor que en jquery ingresaras a las imagenes por un .class o simplemente img pero no por la tag :P y menos asi '<img />' no te aflijas no hay error :xD
Ojo por ojo, y el mundo acabará ciego.

Neilprydehack

Hola Nakp

Gracias por tu respuesta

Nosé exactamente como hacerlo por un .class o simplemente img, porque en cuanto muevo algo de la línea de código las imagenes no se me muestran.

Nakp

agregale un class="tuclase" a todas las imagenes y accede por $j('.tuclase') o por $j('img') :P a eso me refiero
Ojo por ojo, y el mundo acabará ciego.

Neilprydehack

Hola Nakp

Muchísimas gracias por tu ayuda!
Lo he conseguido solucionar poniendo simplemente $j('img') y quitando el valor


  • Un saludo