Usamos cookies para medir audiência e melhorar sua experiência. Você pode aceitar ou recusar a qualquer momento. Veja sobre o iMasters.
Olá,
Sou nvo por aqui e estou precisando de uma ajudinha simples pelo jeito, mas como é a primeira vez q estou fazendo um site não estou conseguindo descobrir esse erro.
Quando mando validar no W3 aparece 6 erros como esse.
>
Line 26, Column 60: document type does not allow element "img" here
quotes[0]='<img src="Imagens/Logo_saibro.png" alt=""/>' ✉
The element named above was found in a context where it is not allowed. This could mean that you have incorrectly nested elements -- such as a "style" element in the "body" section instead of inside "head" -- or two elements that overlap (which is not allowed).
One common cause for this error is the use of XHTML syntax in HTML documents. Due to HTML's rules of implicitly closed elements, this error can create cascading effects. For instance, using XHTML's "self-closing" tags for "meta" and "link" in the "head" section of a HTML document may cause the parser to infer the end of the "head" section and the beginning of the "body" section (where "link" and "meta" are not allowed; hence the reported error).
Os erros são nesse código abaixo.
<script type="text/javascript" language="JavaScript">
var quotes=new Array()
quotes[0]='<img src="Imagens/Logo_saibro.png" alt=""/>'
quotes[1]='<img src="Imagens/Logo_grama.png" alt=""/>'
quotes[2]='<img src="Imagens/Logo_azul.png" alt=""/>'
quotes[3]='<img src="Imagens/Logo_cinza.png" alt=""/>'
quotes[4]='<img src="Imagens/Logo_misto.png" alt=""/>'
quotes[5]='<img src="Imagens/Logo_wimbledon.png" alt=""/>'
var whichquote=Math.floor(Math.random()*(quotes.length))
document.write(quotes[whichquote])
</script></div>Agradeço a quem puder me ajudar.Não Thiago. O problema é queele está colocando tags IMG dentro do **<head>** e isso não é aceito.
Geovane, experimente fazer o mesmo que está tentando através do próprio JavaScript com **new Image()** (se não me engano).
Ou tire esse trecho do **<head>**, coloque num arquivo .JS à parte e apenas o inclua através de uma tag **<script>** COM o atributo **HREF** apontando para o dito arquivo.Achei que fosse isso também, de ele colocar dentro do <head>, mas depois eu vi uma tag de fechamento de uma <div> ali e pensei que não fosse isso. http://forum.imasters.com.br/public/style_emoticons/default/assobiando.gif
Mas não está dentro do head... tá dentro do body mesmo, dentro de uma div
Sendo no **<head>**, ou no **<body>**, não importa. A tag **<img>** deve ser inserida dentro de algum outro elemento, normalmente um **<p>**. Da maneira como está, ele está tentando interpretar que a imagem está sendo inserida em algum local não apropriado. O validador não consegue "enxergar" que isso está dentro do seu script JavaScript, por isso ele aponta este erro.
Se você precisa utilizar a tag **<img>** dentro do seu script como está e deseja que sua página seja validada de acordo com o Doctype que escolheu, terá que utilizar um arquivo externo com extensão **.js**, e chamar seu arquivo na tag **<head>** assim:
<script type="text/javascript" src="nome_do_arquivo.js"></script>Dessa forma, você terá uma completa separação entre a estrutura HTML e a programação (client-side), que podemos chamar de interação.
http://forum.imasters.com.br/public/style_emoticons/default/thumbsup.gif
como está definido o DTD ?
transitional?
strict ?
Transitional
<!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">
<!-- asdfasçkljfaçsdkljfaskdlfjçaslkdjfaçslkdfjçasdlkjfaçsdlfjçsdlkfjasçlkfjasçldkfja
çsdkfjaçsdlkfjasçdlkfj -->
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<title>NETEC - Núcleo de Estudos em Tênis de Campo</title>
<link rel="stylesheet" href="netec.css" type="text/css"/>
</head>
<!-- asdfasçkljfaçsdkljfaskdlfjçaslkdjfaçslkdfjçasdlkjfaçsdlfjçsdlkfjasçlkfjasçldkfja
çsdkfjaçsdlkfjasçdlkfj -->
<body>
<!-- Cabeçalho -->
<div id="header">
<div id="header_top">
<a href="[http://www.netec.ufsc.br">Já tentou fazer o que o Paulo te disse?
P.S.: Coloque sempre seus códigos, aqui no fórum, entre [ c o d e ] e [ / c o d e ].
Já até tentei, mas não entendi direito como fazer....
OU então, alguém teria um código aí para fazer imagens trocar automáticamente no site, cada atualizada ou ida para outra página trocar a image.... é isso que esse código é para fazer e funciona no meu pc... mas da erro no W3
Mostre-nos como já tentou fazer (a inclusão de um arquivo externo)... http://forum.imasters.com.br/public/style_emoticons/default/closedeyes.gif
altere isso
<script type="text/javascript">
var quotes=new Array()
quotes[0]='<img src="Imagens/Logo_saibro.png" alt=""/>'
quotes[1]='<img src="Imagens/Logo_grama.png" alt=""/>'
quotes[2]='<img src="Imagens/Logo_azul.png" alt=""/>'
quotes[3]='<img src="Imagens/Logo_cinza.png" alt=""/>'
quotes[4]='<img src="Imagens/Logo_misto.png" alt=""/>'
quotes[5]='<img src="Imagens/Logo_wimbledon.png" alt=""/>'
var whichquote=Math.floor(Math.random()*(quotes.length))
document.write(quotes[whichquote])
</script>
pra isso:
<script language="javascript">
var quotes=new Array();
quotes[0]='<img src="Imagens/Logo_saibro.png" alt=""/>';
quotes[1]='<img src="Imagens/Logo_grama.png" alt=""/>';
quotes[2]='<img src="Imagens/Logo_azul.png" alt=""/>';
quotes[3]='<img src="Imagens/Logo_cinza.png" alt=""/>';
quotes[4]='<img src="Imagens/Logo_misto.png" alt=""/>';
quotes[5]='<img src="Imagens/Logo_wimbledon.png" alt=""/>';
var whichquote=Math.floor(Math.random()*(quotes.length));
document.write(quotes[whichquote]);
</script>
o que foi modificado:
1. Na tag <script> o atributo "language" adicionado ao invés so atributo "type"
2. Inclusão de ; para cada terminação de linha dos scripts JavaScript
obs: isso não é solução.
é apenas um teste
Tentei alterando isso tudo aí e não deu certo, nem usando os dois ao mesmo tempo, tanto o type quanto o language....
Já to desistindo disso, só queria um código pra fazer as imagens trocar automáticamente no site.
> Não existe o atributo language para o elemento <script />
pode esclarecer, fiquei confuso ? até então na aula de web design eu aprendi a usar o <script language="javscript"> (obs.: html não xhtmlDesculpe! Foi um equívoco meu. http://forum.imasters.com.br/public/style_emoticons/default/assobiando.gif
pode esclarecer, fiquei confuso ? até então na aula de web design eu aprendi a usar o <script language="javscript">
type="text/javascript" é o recomendado para dtd strict
>
Tentei alterando isso tudo aí e não deu certo, nem usando os dois ao mesmo tempo, tanto o type quanto o language....
Já to desistindo disso, só queria um código pra fazer as imagens trocar automáticamente no site.
teoricamente... o script funciona.
pelo que entendi você está preocupado com valição W3C, não é isso ?
tanto faz se o w3c não validou.. se está funcionando para o cliente, não tem problema, para esse caso em específico.
Geovane,
bem vindo ao fórum! http://forum.imasters.com.br/public/style_emoticons/default/thumbsup.gif
Como eu não mexo com JavaScript, não conseguir detectar o erro. Creio que seu problema esta na marcação JavaScript.
Apenas consegui detectar uma falha: