Отладка javascript с автопрокси (PAC) с помощью alert ()? - PullRequest
9 голосов
/ 23 июня 2009

Я пишу собственный скрипт .pac для использования с Firefox. Следуя многочисленным примерам, которые я видел, я разбираю alert () для его отладки, но всплывающих окон нет, хотя скрипт явно вызывается. (Я нажимаю «Перезагрузить» в «Настройках подключения» после каждого изменения в моем сценарии. Я даже пытался перезапустить Firefox.)

Должны ли оповещения работать со сценариями PAC? Может быть, это функция только для IE?

Ответы [ 4 ]

9 голосов
/ 26 июня 2009

http://mxr.mozilla.org/mozilla-central/source/netwerk/base/src/nsProxyAutoConfig.js

В песочницу добавлена ​​функция оповещения:

80         // add predefined functions to pac
81         this._sandBox.importFunction(myIpAddress);
82         this._sandBox.importFunction(dnsResolve);
83         this._sandBox.importFunction(proxyAlert, "alert");

И сопоставленная функция вызывает дамп, который отправляется на консоль ошибок:

108 function proxyAlert(msg) {
109     msg = XPCSafeJSObjectWrapper(msg);
110     try {
111         // It would appear that the console service is threadsafe.
112         var cns = Components.classes["@mozilla.org/consoleservice;1"]
113                             .getService(Components.interfaces.nsIConsoleService);
114         cns.logStringMessage("PAC-alert: "+msg);
115     } catch (e) {
116         dump("PAC: proxyAlert ERROR: "+e+"\n");
117     }
3 голосов
/ 24 июня 2009

Ах, Ха! Предупреждающие сообщения записываются на консоль. Я на самом деле предпочитаю, чтобы все равно оповещать всплывающие окна.

2 голосов
/ 10 августа 2017
  1. Используйте функцию alert в вашем файле .pac.

    • В Firefox Браузер:

      Инструменты -> Веб-разработчик -> Консоль браузера (Ctrl + Shift + J) [Это не Веб-консоль ! !] -> Выход фильтра: PAC-alert

    • In Chrome Браузер:

      Перейти к chrome://net-internals/#events -> Поиск записи с описанием: PAC_JAVASCRIPT_ALERT

      (О Chrome спасибо за этот ответ: https://serverfault.com/a/738871)


Образец .pac Файл:

function FindProxyForURL(url, host) {
    alert("url = " + url + " *** host = " + host + " *** Resolved IP = " + dnsResolve(host));

    return "DIRECT";
}
1 голос
/ 23 июня 2009

Возможно, вам потребуется отключить «EnableAutoproxyResultCache» в реестре Windows. , .

...