проблемы с перемычками в Safari - PullRequest
0 голосов
/ 18 сентября 2010

Я пытаюсь получить эффект onmouseover и onmouseout на странице xhtml для моего меню навигации.

Этот код работает только в Firefox, но больше ничего.Может кто-нибудь подсказать, пожалуйста, как заставить его работать во всех браузерах?

Вот мой код:

    <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">

<title>title</title>

<link rel="stylesheet" type="text/css" href="style.css" />

<script type="text/javascript">
/* <![CDATA[*/
    function roll_over(img_name, img_src)
    {
        document[img_name].src = img_src;
    }

/* ]]> */
</script>

                <li><a href="index.html" onmouseover="roll_over('home', 'images/homeSelected.png')" onmouseout="roll_over('home', 'images/home.png')" ><img src="images/home.png" alt="Home" id="home" /></a></li>
              <li><a href="about.html" onmouseover="roll_over('about', 'images/aboutSelected.png')" onmouseout="roll_over('about', 'images/about.png')" ><img src="images/about.png" alt="About Me" id="about" /></a></li>
              <li><a href="portfolio.html" ><img src="images/portfolioSelected.png" alt="My Portfolio" id="portfolio" /></a></li>
              <li><a href="contact.html" onmouseover="roll_over('contact', 'images/contactSelected.png')" onmouseout="roll_over('contact', 'images/contact.png')" ><img src="images/contact.png" alt="Contact Me" id="contact" /></a></li>

        </ul>
    </div>
</div>

Я пробовал это в Chrome и IE 7 & 8, но ошибка сохраняется.Safari выдает ошибку: TypeError: Результат выражения 'document [img_name]' [undefined] не является объектом. "

Ответы [ 2 ]

3 голосов
/ 14 сентября 2015

Текущие выпуски Safari, к сожалению, будут игнорировать onmouseover.Это связано с тем, что до появления сенсорных экранов 6S от Apple (iPhone, iPad) не было эквивалентного представления о том, что мышь перед чем-то находится над нажатием, поэтому использование наведения мыши приводит к интерфейсам, которые не работают должным образом на устройствах с сенсорным экраном.1002 * Таким образом, чтобы поощрять согласованные проекты, Safari прекратил поддержку onmouseover даже для устройств с мышью.

1 голос
/ 18 сентября 2010

Я бы попробовал изменить вашу функцию так:

 function roll_over(img_name, img_src) 
    { 
        document.getElementById(img_name).src = img_src; 
    } 

Таким образом, он напрямую выбирает ваш <img>, используя ваш переданный идентификатор.

...