Правильно, я немного отредактировал этот пост после некоторых дальнейших тестов, которые я проводил, мой оригинальный пост ниже, однако, теперь это суть проблемы.
У меня есть 3 изображения на странице, при нажатии на них появляется диалоговое окно javascript window.confirm с просьбой подтвердить выбор. Однако из-за расположения изображений на странице диалоговое окно появляется над изображением, при попытке нажать кнопку «ОК» или «Отмена» ничего не происходит. Однако на самом деле происходит следующее подтверждение того, что поверх оригинала появляется другое подтверждение, и это продолжается. Однако, если я щелкну где-нибудь на кнопке, на которой нет изображения, то это сработает, но только после двойного щелчка.
Что я обнаружил, так это то, что при отображении диалогового окна оно не фокусируется автоматически, поэтому необходимо щелкнуть его, чтобы сфокусироваться, прежде чем снова нажать кнопку, чтобы закрыть диалоговое окно. Если при первом щелчке вы щелкаете по той части кнопки (или самого диалогового окна), за которой находится изображение, это изображение фактически щелкается, поскольку диалоговое окно не имеет фокуса. Тем не менее, если вы щелкнете в любом месте диалогового окна, за которым нет изображения (следовательно, фокусируясь на этом диалоговом окне), затем нажмите кнопку «ОК» или «Отмена», это сработает (даже там, где кнопка «ОК» или «Отмена» имеет изображение позади).
Так что мне нужно знать, есть ли способ автоматически фокусировать внимание на диалоговом окне при его открытии, предотвращая необходимость двойного щелчка? Или это просто ошибка в сафари, которую я должен найти для обхода.
-------- оригинальный пост ---------
У меня есть сайт с серией изображений и ссылок. При нажатии на изображение или ссылку отображается диалоговое окно window.confirm, спрашивающее пользователя, уверены ли они, что хотят выполнить действие.
В IE, Opera и Firefox это работает нормально.
Однако в Safari, когда я нажимаю кнопки «ОК» или «Отмена» в диалоговом окне, все, что находится на странице за кнопкой, фактически щелкается, а не кнопка в самом диалоговом окне. Диалог на самом деле говорит: «Вы уверены, что хотите проголосовать за xyz?», Где xyz основан на кликнувшем изображении или ссылке - когда я нажимаю кнопку «ОК» или «Отмена» в диалоговом окне, текст меняется на изображение / ссылку, которые находятся за этим «ОК» / «Отмена». кнопка.
Кто-нибудь видел эту ошибку и / или знает, как ее обойти?
UPDATE
Мне удалось немного его сузить, и я только что нашел, в чем проблема.
Я обнаружил, что если щелкнуть часть кнопки, на которой нет изображения (каждое изображение на самом деле является .NET ImageButton), то это сработает (хотя для этого требуется двойной щелчок). Если я щелкну часть кнопки с изображением позади нее, то откроется диалоговое окно предупреждения / подтверждения. Я добавил JQuery, в котором к каждому изображению добавляется событие щелчка, при щелчке оно скрывает изображение, затем отображает диалоговое окно, и диалоговое окно работает нормально.
Очевидно, что это не то, что мне нужно (на самом деле я не хочу, чтобы изображения исчезали), но это сузило его. Есть идеи, как это можно решить?
Еще одно обновление: я думаю, что на самом деле диалоговое окно предупреждения / подтверждения изначально не фокусируется, поэтому необходимо дважды щелкнуть мышью. Если я щелкну диалоговое окно (в любом месте, где изображение не находится позади), затем нажмите кнопку ОК (даже если за кнопкой находится изображение), и оно заработает. Итак, как мне заставить его автоматически сфокусироваться на диалоге после его открытия?