使用alert()调试autoproxy(PAC)javascript?

时间:2009-06-23 17:00:02

标签: javascript firefox pac autoproxy

我正在编写一个用于Firefox的自定义.pac脚本。根据我见过的众多例子,我为了调试它而散布alert(),但是没有警报弹出,即使脚本被明确调用。 (每次更改脚本后,我都会在“连接设置”中单击“重新加载”。我甚至尝试重新启动Firefox。)

警报应该来自PAC脚本吗?也许这只是一个IE浏览器功能?

4 个答案:

答案 0 :(得分:9)

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 :(得分:3)

啊哈!警报消息将记录到控制台。我实际上更喜欢那个提醒弹出窗口。

答案 2 :(得分:2)

  1. alert文件中使用.pac功能。

    • Firefox 浏览器中:

      工具 - > 网络开发人员 - > 浏览器控制台(Ctrl + Shift + J) [这不是 Web控制台 !!] - >过滤输出:PAC-alert

    • Chrome 浏览器中:

      转到chrome://net-internals/#events - >搜索包含说明的记录:PAC_JAVASCRIPT_ALERT

      (关于Chrome感谢您的回答:https://serverfault.com/a/738871

  2. 示例.pac文件:

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

答案 3 :(得分:1)

您可能需要在Windows注册表中禁用“EnableAutoproxyResultCache”。 。