Итак, я сделал это, и он работает в Firefox 3.5 на Windows XP. Он показывает поле с некоторым текстом, наложением изображения и прозрачным div над ним, который перехватывает все клики.
<div id="menuOption" style="border:1px solid black;position:relative;width:100px;height:40px;">
sometext goes here.
<!-- Place image inside of you menu bar link -->
<img id="imgOverlay" src="w3.png" style="z-index:4;position:absolute;top:0px;left:0px;width:100px;height:40px;" \>
<!-- Your link here -->
<a href="javascript:alert('Hello!')" >
<div id="mylinkAction" style="z-index:5;position:absolute;top:0px;left:0px;width:100px;height:40px;">
</div>
</a>
</div>
Что я сделал:
Я создал div и изменил его размер так, чтобы он мог соответствовать размеру меню, 100x40px (произвольное значение, но оно помогает в иллюстрировании примера).
У div есть наложение изображений и наложение ссылок. Ссылка содержит div, размер которого совпадает с div 'menuOption'. Таким образом, щелчок пользователя фиксируется по всему блоку.
При тестировании вам нужно будет предоставить собственное изображение. :)
Оговорка:
Если вы ожидаете, что ваша кнопка меню будет реагировать на взаимодействие с пользователем (например, изменение цвета для имитации кнопки), то вам потребуется дополнительный код, присоединенный к javascript, который вы будете вызывать для тега, этот дополнительный код может обращаться к «menuOption» элемент через DOM и изменить его цвет.
Кроме того, я не знаю другого способа, чтобы вы могли принять событие щелчка и зарегистрировать его в элементе под видимым элементом страницы. Этим летом я тоже попробовал и не нашел другого решения, кроме этого.
Надеюсь, это поможет.
PS:
Запись событий в quirksmode прошла долгий путь, чтобы помочь мне понять, как события ведут себя в браузерах.