Контекстне меню для netscape navigator і internet explorer, комп'ютерна документація від а до я

Контекстне меню для Netscape Navigator і Internet Explorer

Але як же створити меню, що випадає, якщо в Netscape наступний код (працює в Internet Explorer):

не працює, тобто - функція викликається, але в Nescape Navigator виникає меню, що випадає, поверх створюваного в функції myfunction? Як же обійти це обмеження? Я знайшов таке рішення:

Наше завдання створити не гарний, а зрозумілий код, прикрасити його ви можете самі! Створюю примітивний лист стилів:

Він відповідає лише за відображення і приховування контекстного меню, що нам власне і треба. Тепер треба визначити координати курсора в момент клацання правої кнопки миші по документу. Основна складність полягає в тому, що для Netscape Navigator виникає така проблема, як обробник події event.onmousedown. Він перекриває обробник, заданий в body (в общем-то цілком логічно, оскільки event задається щодо вікна, а не документа, як в body). І знову виникає ненависне браузерні контекстне меню. Я вирішив цю проблему таким чином:

Я став відстежувати кожне пересування миші на екрані і записувати координати курсора в глобальні змінні:

Тепер зберу саму функцію відображення меню:

З точки зору продуктивності такої код краще, оскільки браузерам, на основі движка Gecko, не потрібно перевіряти додаткові умови.

І на завершення цієї статті хочу навести приклад створення контекстного меню за допомогою технологій, вбудованих в Internet Explorer. По суті створюється дочірнє немодального вікно на основі отриманого коду. Цей код не може використовувати зовнішні таблиці стилів (навіть вбудовані в документ!), Тому вводити дані про стилі доведеться контекстно до елементу.

Схожі статті