Без дополнительной информации это звучит как проблема недостаточной фильтрации. То есть вы получаете все сообщения command , не определяя, какие они или почему они передаются через ваш уровень обратного вызова, а ваш уровень обратного вызова получает два сообщения за клик, как указано, с неизвестным расположением.
Структура обратного вызова уведомлений о событиях для расширений Safari позволяет регистрировать несколько событий для одного и того же типа события, и во многих случаях может быть создано несколько различных событий. С этой целью ваша попытка добавить прослушиватель событий в область «команда» означает, что вы буквально получаете все команды, переданные уровню обратного вызова. Это может быть многократное срабатывание в тех случаях, когда у вас есть, например, сложное отношение вложенности (A содержит B, где A и B оба уведомляют), или сложный шаблон поведения (например, mousedown , за которым следует mouseup ).
Apple предоставляет руководство о том, как обрабатывать этот сценарий , связывая команду с определенной целью или конкретной командой, что вам и следует сделать здесь. И на случай, если этого недостаточно, вот дополнительная документация о том, как работает система обратного вызова, чтобы помочь вам правильно определить ваши события .
Следование инструкциям должно позволить вам решить эту проблему, правильно привязав свои события к своему объекту и действуя только в тех событиях, которые вам нужны. Все остальное должно просто игнорироваться вашим обработчиком событий.