Отладка javascript с автопрокси (PAC) с помощью alert()?

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

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

4 ответа

Решение

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");

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

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     }
  1. использование alert функция в вашем .pac файл.

    • В браузере Firefox:

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

    • В браузере Chrome:

      http://chrome//net-internals/ -> Поиск записи с описанием: 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";
}

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

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

Другие вопросы по тегам