powered by simpleCommunicator - 2.0.59     © 2025 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / HTML, JavaScript, VBScript, CSS [игнор отключен] [закрыт для гостей] / Перехват AJAX запросов в расширении
6 сообщений из 6, страница 1 из 1
Перехват AJAX запросов в расширении
    #39613850
Tsyklop
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Заказчик хочет что бы расширение перехватывало запросы AJAX и перед отправкой по нужному адресу отправляло на его сервер. Это нужно для сотрудников, а не для всех. Так что не надо писать это не хорошо и т.д.

Пишу вот такое в content.js:

Код: javascript
1.
2.
3.
4.
5.
6.
    (function(send) {
        XMLHttpRequest.prototype.send = function() {
            console.log('ajax');
            send.apply(this, arguments);
        };
    })(XMLHttpRequest.prototype.send);



Но вот это не работает. Пытался в window.onload и вне его. выставлял разные типы run_at в manifest.json.

А вот если я этот же код исполню из консоли то все работает. Что я не так делаю?

manifest.json

Код: javascript
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
19.
20.
21.
22.
23.
24.
25.
26.
27.
28.
29.
30.
31.
32.
33.
34.
35.
36.
37.
38.
39.
40.
41.
{
  "manifest_version": 2,
  "name": "Sender",
  "version": "1",
  "permissions": [
    "tabs",
    "activeTab",
    "http://*/*",
    "https://*/*",
    "storage",
    "downloads"
  ],
  "icons": {
    "48": "48x48.png"
  },
  "background": {
    "scripts": [
      "jquery.js",
      "bg.js"
    ]
  },
  "content_scripts": [
    {
      "matches": [
        "https://*/*",
        "http://*/*"
      ],
      "js": [
        "cryptojs.js",
        "jquery-3.3.1.min.js",
        "content.js"
      ],
      "run_at": "document_idle"
    }
  ],
  "browser_action": {
    "default_title": "Open",
    "default_icon": "48x48.png",
    "default_popup": "popup.html"
  }
}
...
Рейтинг: 0 / 0
Перехват AJAX запросов в расширении
    #39613852
Фотография hVostt
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
...
Рейтинг: 0 / 0
Перехват AJAX запросов в расширении
    #39613859
stanilar
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Очевидно, что в консоле скрипт выполняется после загрузки страницы, а скрипт из расширения - до.

Для расширений есть очень специфичные хуки на работу со страницей. Например для FF надо было делать как-то так:

Код: sql
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
tabs.open(
		{

			onReady:function onReady(tab) 
			{						
                                ...
				let worker = tab.tab.attach({ contentScriptFile : jsfiles});					
                                ...
			},

		});
...
Рейтинг: 0 / 0
Перехват AJAX запросов в расширении
    #39613970
Tsyklop
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
stanilar,

content.js и так встраивается в страницу с расширения. И в нем я могу прописать хук хоть в window.onload но эффекта не будет
...
Рейтинг: 0 / 0
Перехват AJAX запросов в расширении
    #39614103
stanilar
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Tsyklopэффекта не будет
Конечно не будет, если браузер перед запуском клиентского скрипта, но после того, как поставиться твой хук, переинициализирует контекст выполнения.
...
Рейтинг: 0 / 0
Перехват AJAX запросов в расширении
    #39614200
Агнец за бортом
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Tsyklop,

А зачем это делать на клиенте?
...
Рейтинг: 0 / 0
6 сообщений из 6, страница 1 из 1
Форумы / HTML, JavaScript, VBScript, CSS [игнор отключен] [закрыт для гостей] / Перехват AJAX запросов в расширении
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]