0

我正在处理一个 MSCRM 页面,它仅使用两种方法加载一个简单的 Javascript。一种加载外部 Javascript 的方法和另一种调用该外部方法并将结果写入 MSCRM 页面的方法。这些是代码

function addJavascript(jsname, pos) {
    var th = document.getElementsByTagName(pos)[0];
    var s = document.createElement('script');
    s.setAttribute('type', 'text/javascript');
    s.setAttribute('src', jsname);
    th.appendChild(s);
}

addJavascript('http://maps.google.com/maps/api/js?v=3&sensor=true&key=xxxxxxx', 'body');

function getLatLang() {
    var geocoder = new google.maps.Geocoder();
    var address = Xrm.Page.getAttribute("address1_line1").getValue() + "," + Xrm.Page.getAttribute("address1_city").getValue();
    if (address != '') {
        geocoder.geocode({ "address": address }, function (results, status) {
            if (status == google.maps.GeocoderStatus.OK) {
                Xrm.Page.getAttribute("address1_latitude").setValue(results[0].geometry.location.lat());
                Xrm.Page.getAttribute("address1_longitude").setValue(results[0].geometry.location.lng());
                return;
            }
        });
    }
}

它们工作正常,但前提是我在调试(IE F12)中运行它,或者我在我真的不想做的 IE 高级选项中取消选中“禁用脚本调试”。我读到了由调用console.log()方法引起的错误,您可以从上面的代码片段中看到根本没有调用该方法。

所以简而言之,我如何让 javascript 函数在没有调试器的情况下工作?

任何指针表示赞赏。谢谢。

4

1 回答 1

0

您可以通过在它不可用时尝试创建它来检查问题是否是由 console.log 引起的。在您的代码之前添加:

var console = console || {};
console.log = console.log || function () {};

如果它有效,您可能缺少地图脚本所需的包含。

于 2013-02-28T19:18:14.370 回答