我正在创建一个带有内置WebBrowser控件的.Net库。图书馆通常应该在其他应用程序中处理谷歌地图。基本上所有重要的谷歌地图API事件都发送到我的C#库传递到应用程序使用它。正在下载文件块javascript事件?
一切都很好,直到使用我的lib的应用程序想要在点击时更改标记图标并双击执行不同的操作。在这种情况下,应用程序将在C#中的水平,这反过来又调用一个JavaScript函数来改变地图上的图标标记图标:
function SetMarkerIcon(id, imageUri) {
markers[id].setIcon(imageUri);
}
我调试的问题是JavaScript的冻结,直到图像文件被下载和结论对第二次点击无响应,这应该会触发'dblclick'事件。所以我的第一个问题是这是否是正确的思维方式。
基于这个假设我试着使用的setTimeout有点延迟一个文件的下载:
function SetMarkerIcon(id, imageUri) {
setTimeout(function() { markers[id].setIcon(imageUri); }, 200);
}
但显然这种解决方案很“脏”(虽然在测试环境中工作,其实它的工作对甚至在使用本地.js文件时延迟0ms,可能是因为setTimeout使用了一种单独的线程,但与服务器上的脚本无关),因此第二个问题:您是否有任何可用的想法来正确解决此错误?
如果问题有点模糊,请提前致谢。
感谢您的这个想法!实现这将是有问题的(因为标记图标是在一些非托管代码中动态生成的),但可能是可能的。我将在稍后保留此解决方案。 – slawekwin