Контекстное меню по умолчанию

У меня есть несколько кнопок, которые используют анимированные листы спрайтов, и поэтому должны быть установлены в качестве фонового изображения (насколько я знаю). В настоящее время они используют перенаправление javascript, а не href, поэтому контекстное меню при щелчке правой кнопкой мыши предназначено для фонового изображения.

В идеале я хотел бы, чтобы отображалось контекстное меню для ссылки, чтобы «открыть в новой вкладке/окне» (или эквивалент браузера) можно было использовать, щелкнув правой кнопкой мыши.

Я не хочу создавать собственное контекстное меню, просто чтобы оно использовало стандартное меню браузера для ссылок, а не фоновые изображения.

К сожалению, гугл в этом вопросе ничем не помог.


person Sasha    schedule 25.04.2012    source источник
comment
почему бы не обернуть кнопки настоящими якорями? Кстати, вы, вероятно, имели в виду javascript, а не перенаправление java.   -  person Eliran Malka    schedule 26.04.2012
comment
Да, я имел в виду javascript. В идеале я хотел бы использовать якоря, но я также хотел бы сделать очень короткую паузу перед перенаправлением, чтобы позволить воспроизвести анимацию кнопки, буквально полсекунды. Проблема в том, что все, что я нашел, говорит, что это возможно только с javascript setTimeout, который я сейчас использую.   -  person Sasha    schedule 26.04.2012
comment
ну тогда в чем проблема?   -  person Eliran Malka    schedule 26.04.2012
comment
Каждая кнопка использует javascript для анимации и перенаправления, однако, поскольку на самом деле это не href, щелчок правой кнопкой мыши по ней отобразит контекстное меню для фонового изображения. Я хотел бы, чтобы он отображал контекстное меню для href.   -  person Sasha    schedule 26.04.2012
comment
Хорошо, еще раз - почему бы не использовать якоря?   -  person Eliran Malka    schedule 26.04.2012
comment
Различные браузеры, кажется, обрабатывают это по-разному. ‹script type=text/javascript› function linkTo(url){ setTimeout(function(){ window.location =url; }, 800); } ‹/script› ‹a href=javascript:linkTo('google.com');›Test Ссылка‹/a› Это прекрасно работает в Chrome, но в Firefox и Opera средний щелчок по ссылке открывает только функцию javascript, а в IE и Safari средний щелчок работает как левый щелчок, потому что window.location говорит об этом.   -  person Sasha    schedule 26.04.2012


Ответы (1)


Спецификации HTML5 обновили гиперссылки, чтобы они могли содержать потоковое содержимое. Если вы хотите такого поведения, вам нужно обернуть их гиперссылкой, как предложил @Eliran.

Там нет поддержки для изменения контекстного меню, и самое близкое, что вам нужно, это переопределить обработку событий щелчка правой кнопкой мыши по умолчанию чем-то, что создает HTML-меню.

person Filip Dupanović    schedule 26.04.2012
comment
Спасибо. С тех пор я нашел другой способ отложить перенаправление href, который решает большинство проблем, с которыми я сталкивался раньше, поэтому больше не нуждаюсь в решении для этого. Ссылка включена для тех, кто случайно наткнется на это спустя годы: jsfiddle.net/2WJH9 - person Sasha; 26.04.2012