Форум: Форум PHPФорум ApacheФорум Регулярные ВыраженияФорум MySQLHTML+CSS+JavaScriptФорум FlashРазное
Новые темы: 0000000
MySQL на примерах. Авторы: Кузнецов М.В., Симдянов И.В. PHP. Практика создания Web-сайтов (второе издание). Авторы: Кузнецов М.В., Симдянов И.В. Программирование. Ступени успешной карьеры. Авторы: Кузнецов М.В., Симдянов И.В. PHP 5/6. В подлиннике. Авторы: Кузнецов М.В., Симдянов И.В. PHP 5. На примерах. Авторы: Кузнецов М.В., Симдянов И.В., Голышев С.В.
ВСЕ НАШИ КНИГИ
Консультационный центр SoftTime

HTML+CSS+JavaScript

Выбрать другой форум

 

Здравствуйте, Посетитель!

вид форума:
Линейный форум Структурный форум

тема: Влияние DOCTYPE на JavaScript
 
 автор: Blizard   (19.08.2011 в 13:28)   письмо автору
 
 

Не работает выезжающий блок в
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">

вот код:


<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
</head>
<body>
<div id="infoobj" style='display:none; left:0;top:0; width:400;position:absolute;background-color:#eeeeee; border:1px gray solid; text-align:center; padding:4px;'></div>

   <script type="text/javascript">
   var posx=0; var posy=0;
   function mouseupdate(e) { 
   if(!e) var e = window.event; if(!e) return;
   if (e.pageX || e.pageY) { posx = e.pageX-210; posy = e.pageY;} 
   else if (e.clientX || e.clientY) { 
   scr=(document.compatMode != 'BackCompat') ? document.documentElement : document.body;
   posx = e.clientX+scr.scrollLeft-210; 
   posy = e.clientY+scr.scrollTop;} 
   var infoobj=document.getElementById('infoobj');
   if(infoobj) {infoobj.style.left=posx+10;infoobj.style.top=posy+10;}
   }
   document.onmousemove=mouseupdate;

   function info(text) {
   var infoobj=document.getElementById('infoobj');
   if(!text) {infoobj.style.display='none'; return false;}
   infoobj.innerHTML=text;
   infoobj.style.display='block';
   }
   </script>

<br /><br />

<img src="img/5p.jpg" alt="" onmouseover="info('Этот текст должен выезжать в блоке');" onmouseout="info('');" />

</body>
</html>


Если Doctype убрать. то все начинает работать.
Прошу помощи, уже не знаю где и что изменить, чтобы заработало. как только не пробовал..

  Ответить  
 
 автор: Blizard   (19.08.2011 в 14:45)   письмо автору
 
   для: Blizard   (19.08.2011 в 13:28)
 

cheops, как будете онлайн, ответьте пожалуйста, как бы вы поступили в такой ситуации

  Ответить  
 
 автор: cheops   (19.08.2011 в 16:03)   письмо автору
 
   для: Blizard   (19.08.2011 в 13:28)
 

У вас единицы измерения в JS-коде не указаны, если раньше считалось, что если ничего не указано, это пикселы, то теперь нужно указывать их явно.
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd"> 
<html xmlns="http://www.w3.org/1999/xhtml"> 
<head> 
</head> 
<body> 
<div id="infoobj" style='display:none; left:0px; top:0px; width:400px; position:absolute;background-color:#eeeeee; border:1px gray solid; text-align:center; padding:4px;'></div> 

   <script type="text/javascript"> 
   var posx=0; var posy=0; 
   function mouseupdate(e)
   {  
     if(!e) var e = window.event;
     if(!e) return; 
     if (e.pageX || e.pageY)
     {
       posx = e.pageX-210;
       posy = e.pageY;
     }  
     else if (e.clientX || e.clientY)
     {  
       scr=(document.compatMode != 'BackCompat') ? document.documentElement : document.body; 
       posx = e.clientX+scr.scrollLeft-210;  
       posy = e.clientY+scr.scrollTop;
     }  
     var infoobj=document.getElementById('infoobj'); 
     if(infoobj)
     {
       infoobj.style.left = (posx+10) + "px";
       infoobj.style.top = (posy+10) + "px";
     } 
   } 
   document.onmousemove=mouseupdate;
   function info(text)
   { 
     var infoobj=document.getElementById('infoobj'); 
     if(!text)
     {
       infoobj.style.display='none';
       return false;
     } 
     infoobj.innerHTML=text; 
     infoobj.style.display='block'; 
   } 
   </script> 

<br /><br /> 

<img src="img/5p.jpg" alt="" onmouseover="info('Этот текст должен выезжать в блоке');" onmouseout="info('');" /> 
</body> 
</html>

  Ответить  
 
 автор: Blizard   (19.08.2011 в 19:44)   письмо автору
 
   для: cheops   (19.08.2011 в 16:03)
 

Большое спасибо!

  Ответить  
 
 автор: oldOld   (20.08.2011 в 06:47)   письмо автору
 
   для: cheops   (19.08.2011 в 16:03)
 

>>>если раньше считалось, что если ничего не указано, это пикселы, то теперь нужно указывать их явно.
Отсутствие единиц измерения и по сей день работает в осле и ни когда не работало в других браузерах. ИМХО.

  Ответить  
Rambler's Top100
вверх

Rambler's Top100 Яндекс.Метрика Яндекс цитирования