我正面临着Bing Maps的主要问题。我在用 : http://dev.virtualearth.net/mapcontrol/mapcontrol.ashx?v=6.3
首先,我在firebug中遇到错误:
this.CreditsFor=function(a,i,j,h)
{
var e=[];
if(a!="undefined"&&a!=null&&typeof m_tableKeys[a]!="undefined"&&
........
MVC_Init_FlatlandView_Drawing();
MVC_Init_View3D_Drawing()};
if(typeof closeDependency!="undefined")
closeDependency("mapcontrol.js")
之后我将.LoadMap()调用放在try-catch块中。它抛出异常:
p_elSource.attachEvent不是 功能
我已经尝试过在msdn论坛推荐的以下解决方案:
只有在启用了firebug时才会发生这种情况。
答案 0 :(得分:10)
芝诺,
您使用的是FF4吗?我在FF4中遇到了问题,这是由于我的脚本调用尚未定义的VE功能的竞争条件引起的。我得到了一个解决方案here。
特别要注意Josh Unger的答案,他在那里描述了使用setInterval来等待辅助库加载并做到这一点。
var interval = setInterval(function() {
if (eval("typeof VEMap") != "undefined" &&
document.getElementById("map").attachEvent != undefined)
{
clearInterval(interval);
LoadMap();
}
}, 10);
您必须更新示例代码以适合您的具体情况。重要的是避免在VE中调用任何内容,直到您确定VE脚本已加载和辅助库已加载为止。
使用FF4的人最近向我报告了这个问题。我怀疑FF4与FF3相比(可能更快的脚本执行,或脚本执行时的差异)触发了错误。在任何情况下,当我更新我的代码以延迟调用VE直到加载了libs时,错误就消失了,地图也能正常工作。
请注意,我没有进行延迟加载,而Firebug不是问题。当线程在2008/2009年处于活跃状态时,这些显然是因素。