Определить, установлено ли у меня расширение Chrome? - PullRequest
1 голос
/ 09 февраля 2012

Я начал работать над очень классным расширением Chrome и столкнулся с небольшой проблемой.

Я хочу разрешить моему пользователю поделиться ссылкой. Разделяя эту ссылку, другие пользователи могут получить некоторую информацию с моим расширением.

Проблема в том, что когда пользователь щелкает ссылку общего доступа, я хочу проверить, установлено ли мое расширение Chrome в его браузере. Если это произойдет - отлично, иначе - я хочу перенаправить его, чтобы загрузить мое расширение.

Есть идеи как?

Ответы [ 3 ]

1 голос
/ 09 февраля 2012

Одна из возможностей - это заставить ваше расширение запускать скрипт контента на всех сайтах * и добавить прослушиватель событий клика на document.Он будет проверять event.target, чтобы убедиться, что это ссылка и имеет определенный префикс, и если это произойдет, он вызовет метод preventDefault своего параметра и выполнит свою работу.Для пользователей без вашего расширения ссылка, конечно, будет работать как любая другая.

* Это заставляет Chrome предупреждать об этом ваших потенциальных пользователей при установке вашего расширения;прочитайте Предупреждения о разрешениях для получения дополнительной информации.

0 голосов
/ 09 февраля 2012

Я думаю, вы должны иметь возможность устанавливать / изменять заголовки в HTTP-запросах (начиная с Chrome 17?).Добавление заголовка к запросам означает, что вы можете обнаружить наличие расширения на стороне сервера.

Это довольно ненавязчиво.Многие расширения / плагины исторически модифицировали заголовок User-Agent.

0 голосов
/ 09 февраля 2012

Заставьте расширение добавлять невидимый элемент в DOM каждой загружаемой страницы, помечая его уникальным идентификатором. Когда пользователь нажимает на эту ссылку, запустите некоторый javascript для проверки этого элемента - если он не существует, то вы знаете, что расширение не установлено.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...