кросс-браузерное решение для прослушивания запросов и захвата скриншотов - PullRequest
2 голосов
/ 22 июня 2011

Мне нужно создать скрипт plugin / extension / bookmarklet / greasemonkey, который позволяет пользователю захватывать произвольные запросы и отправлять их обратно в веб-сервис с некоторыми тегами. Например, пользователь может перейти на страницу и щелкнуть «захват», и ему будет предложено диалоговое окно с запросом некоторых тегов и / или описания, а затем текущее местоположение окна будет отправлено веб-службе. Вот подвох:

  1. Пользователь также должен иметь возможность просматривать асинхронные запросы и «захватывать» их так же, как они могут захватывать местоположение окна

  2. Пользователь должен иметь возможность сделать снимок экрана своей текущей страницы и отправить его обратно через веб-сервис

Учитывая эти два последних усложнения, я склоняюсь к плагину для браузера в качестве решения (возможно, Firefox, поскольку низкоуровневый http-контент, похоже, лучше поддерживается, чем в Chrome), но мне интересно, есть ли у кого-нибудь идея для более кросс-браузерное решение, и, если есть что-то, что может обеспечить хороший API для такого рода вещей.

1 Ответ

2 голосов
/ 22 июня 2011

Не будет кросс-браузерного решения, позволяющего фиксировать все запросы. Для Firefox вы должны реализовать интерфейс nsIContentPolicy и зарегистрировать свой компонент в категории content-policy. Для Chrome вам понадобится экспериментальный веб-запрос API (событие beforeload в браузерах WebKit будет делать то же самое, но не будет захватывать все, у него также есть серьезные побочные эффекты ).

Что касается снимков экрана веб-страницы, это возможно в расширениях Firefox с помощью тега HTML <canvas> и вызова метода drawWindow . Затем вы можете экспортировать данные через canvas.toDataURL(). Я не знаю никаких альтернатив для браузеров WebKit. chrome.tabs.captureVisibleTab () позволяет делать то же самое в Chrome.

...