Dojo中的JavaScript运行时错误“irrationalPath”

时间:2016-01-20 12:45:38

标签: javascript dojo arcgis httpcontext arcgis-js-api

我在http://serverapi.arcgisonline.com/jsapi/arcgis/?v=3.3使用dojo javascript文件在ASP.NET页面上显示地图。

地图突然停止显示,我遇到了jiz错误,我发布了Getting JavaScript runtime error: irrationalPath, what does it mean?

要调试此问题,我在http://serverapi.arcgisonline.com/jsapi/arcgis/?v=3.3制作了一个javascript文件的本地未压缩副本,并在我的应用程序中引用了该副本。

当调用这个dojo javaScript时,我得到以下错误,最终阻止地图显示

  

JavaScript运行时错误:irrationalPath

在调试过程中,我发现抛出路径的函数在

之下
_9b = function (mid, _9c, _9d, _9e, _9f, _a0, _a1, _a2) {
        var pid, _a3, _a4, _a5, _a6, url, _a7, _a8, _a9;
        _a9 = mid;
        _a8 = /^\./.test(mid);
        if (/(^\/)|(\:)|(\.js$)/.test(mid) || (_a8 && !_9c)) {
            return _81(0, mid, 0, mid);
        } else {
            mid = _95(_a8 ? (_9c.mid + "/../" + mid) : mid);
            if (/^\./.test(mid)) {
                debugger;
                throw _f("irrationalPath", mid);
            }
            if (_9c) {
                _a6 = _93(_9c.mid, _a0);
            }
            _a6 = _a6 || _a0.star;
            _a6 = _a6 && _93(mid, _a6[1]);
            if (_a6) {
                mid = _a6[1] + mid.substring(_a6[3]);
            }
            _70 = mid.match(/^([^\/]+)(\/(.+))?$/);
            pid = _70 ? _70[1] : "";
            if ((_a3 = _9d[pid])) {
                mid = pid + "/" + (_a4 = (_70[3] || _a3.main));
            } else {
                pid = "";
            }
            var _aa = 0,
                _ab = 0;
            _9(_4c, function (_ac) {
                var _ad = mid.match(_ac[0]);
                if (_ad && _ad.length > _aa) {
                    _ab = _6(_ac[1]) ? mid.replace(_ac[0], _ac[1]) : _ac[1];
                }
            });
            if (_ab) {
                return _9b(_ab, 0, _9d, _9e, _9f, _a0, _a1, _a2);
            }
            _a7 = _9e[mid];
            if (_a7) {
                return _a2 ? _81(_a7.pid, _a7.mid, _a7.pack, _a7.url) : _9e[mid];
            }
        }
        _a6 = _93(mid, _a1);
        if (_a6) {
            url = _a6[1] + mid.substring(_a6[3]);
        } else {
            if (pid) {
                url = _a3.location + "/" + _a4;
            } else {
                if (has("config-tlmSiblingOfDojo")) {
                    url = "../" + mid;
                } else {
                    url = mid;
                }
            }
        }
        if (!(/(^\/)|(\:)/.test(url))) {
            url = _9f + url;
        }
        url += ".js";
        return _81(pid, mid, _a3, _95(url));
    }

当我在抛出错误之前在该行放置一个断点时,变量“ mid ”的值将变为“ ../ css / jsapi.css / / x “并且该路径在我的应用程序中不存在,是否必须?

线if (/(^\/)|(\:)|(\.js$)/.test(mid) || (_a8 && !_9c))实际上做了什么?在我测试的所有时间里它都没有回归。

这个if (/^\./.test(mid))还在做什么?

这是我第一次触及与道场有关的任何事情,所以如果我不清楚我会道歉,但我总能澄清。

更新 在javascript函数

中的下面一行代码中抛出错误
document.getElementById(menu_number).src = "<%=HttpContext.Current.Request.ApplicationPath%>/UI/Common/Images/down-arrow.gif";

0 个答案:

没有答案