当我的网络应用程序最初加载时,目标是在Google地球插件上呈现一个jquery ui对话框。但是,我的当前代码对话框在Mac OS上通过Google地球插件成功呈现,但在Windows 8上失败。在两个操作系统上使用Chromium作为浏览器。
我已经阅读here和here使用iframe填充程序或z-indexing可能有所帮助(不确定如何将其与jquery对话框合并),但它不是Windows特定的和我还想知道是否有理由不使用iframe shim或z-indexing仍可在Mac上运行?有没有什么特别关于Windows的解决方案可能比使用shim或z-indexing更简单?
此外,仅在Windows上,我注意到谷歌地球插件在其div中渲染后,地图上有一个洞,我可以看到背景图层。有关于此的任何想法吗?
代码段
HTML片段
<button id="btn">Open Dialog</button>
<div id='containter'>
<div id="gEarth" ></div>
</div>
<div id='dialog'></div>
对话框事件监听器
(function(window, document) {
$(document).ready(function () {
$dialog = $('#dialog').html('Dialog Demo...note background of this part renders under gEarth').dialog({
autoOpen: false,
height: 350,
width: 350,
modal: true,
title: 'My Dialog'
});
$('#btn').click(function () {
$dialog.dialog('open');
return false;
});
});
})(this, this.document);
加载谷歌地球
(function(window, document) {
var ge;
google.load("earth", "1", {"other_params":"sensor=true_or_false"});
function init() {
google.earth.createInstance('gEarth', initCB, failureCB);
}
function initCB(instance) {
ge = instance;
ge.getWindow().setVisibility(true);
}
function failureCB(errorCode) {
}
google.setOnLoadCallback(init);
console.log('gEarth initialized.');
})(this, this.document);