2013-02-28 126 views
0

我正在使用MSCRM页面,它只用两种方法加载一个简单的Javascript。加载外部Javascript的一种方法,以及调用该外部方法并将结果写入MSCRM页面的另一种方法。这些代码Javascript不会在没有调试器的情况下运行(F12)

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函数在没有调试器的情况下工作?

任何指针赞赏。谢谢。

+0

你是否缓存了一个有console.log行的旧文件?清除缓存并查看它是否奇迹般地工作。 – epascarello 2013-02-28 19:27:12

+0

没有这样的魔力; [缓存被清除,并解释,console.log从未被调用。无论如何感谢您的输入 – meh 2013-02-28 19:49:45

回答

0

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

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

如果有效,您可能会遗漏地图脚本的必需包含。

+0

试图补充说,按照你的指示,仍然不工作。感谢评论 – meh 2013-02-28 19:50:32

相关问题