Подтвердить что ты не робот

Пользовательские скрипты и расширение Chrome

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

Каковы преимущества/недостатки написания его в родных расширениях chrome и userscripts?

4b9b3361

Ответ 1

Существует несколько различий между встроенным расширением Chrome и пользователем script.

См. этот раздел вики для списка различий между сценариями Greasemonkey и скриптами Chrome.

Если вы хотите использовать межсерверные пользовательские скрипты, попробуйте не использовать методы GM_* или unsafeWindow.

С точки зрения разработчика нет преимуществ, предпочитающих либо пользовательские скрипты, либо расширения Chrome, поскольку любой пользователь script может быть легко встроен в расширение Chrome.

Если вы рассматриваете этот раздел в свете развертывания, то различия существенны:

  • Установка одним щелчком доступна только в Интернет-магазине Chrome. Только внутренние расширения.
  • Оба пользовательских сценария и собственные расширения можно перетащить из локального файлового браузера на страницу "Расширения", чтобы установить расширение.
    (Пользовательские скрипты преобразуются в расширения Chrome, предупреждение: см. Ниже).
  • Поддержка родного пользователя script перестанет работать в конце 2013 года, потому что конвертированные пользовательские скрипты используют манифест версии 1, который устарел.

Заключение

Я рекомендую разрабатывать собственные расширения. Вы можете легко создать расширение Chrome от пользователя script, используя следующую структуру каталогов:

manifest.json
whatever.user.js

Минимальный манифест. json:

{
     "name": "name of extension",
     "version": "1",
     "manifest_version": 2,
     "content_scripts": [{
         "js": ["whatever.user.js"],
         "matches": ["http://example.com/*"]
      }]
}

См. также

Ответ 2

Случай для написания (и совместного использования!) пользовательских скриптов: пока вы просто используете обычные API DOM браузера, ваш script может с минимальными усилиями быть поднятым и выполненным для запуска (часто просто устанавливая его без изменений) на любой, кто использует другой пользовательский браузер script.

Случай с ними, когда вы используете Google Chrome, заключается в том, что с Chrome 21 их установка была смехотворной: вам нужно щелкнуть правой кнопкой мыши по ссылке установки, сохранить ее на диск, открыть страницу расширений и перетащить сохраненную script там (да) или установите TamperMonkey из Интернет-магазина Chrome (это бесплатно, и для Chrome это действительно то, что Greasemonkey для Firefox: предоставляет пользователю script установку и обслуживание переносимого пользовательского интерфейса).

Пока вам нужно только делать то, что вы перечисляете, вам может не понадобиться более привилегированный доступ к API, чем то, что пользовательский сценарий дает вам изначально: попробуйте выполнить код XMLHttpRequest, который вы пишете для script в консоли devtools, когда на другом сайте, и вы увидите, достаточно ли это для ваших нужд или нет. Многие веб-интерфейсы API в наши дни поддерживают поддержку CORS, что может сэкономить ваш прецедент от необходимости прибегать к собственным API-интерфейсам API-интерфейсов собственных браузеров.

Ответ 3

Пользовательские скрипты (то есть сценарии Greasemonkey), установленные непосредственно с Chrome, в конечном итоге автоматически преобразуются в расширения с помощью скриптов контента, поэтому они по сути одинаковы. Пользовательские скрипты быстро и легко записываются, и хороший пользователь script может поддерживаться в других браузерах. Тем не менее, существует несколько ограничений для пользовательских скриптов в Chrome. Они не могут напрямую читать или писать переменные с веб-страниц (используется только стандартный DOM). Они не могут создавать XHR с поперечным происхождением. Напротив, расширения намного мощнее, но сложнее развиваться.

Кажется, вам придется писать расширения Chrome, поскольку вам нужно "делать вызовы API на внешний веб-сайт".