jquery-ui ダイアログ内で Google Earth プラグインをポップアップしています。これは jquery-ui 1.9.2 で動作していましたが、1.10.2 にアップグレードするとプラグインがロードされますが、ダイアログを移動しようとすると、Google Earth が動作を停止し、「Google Earth プラグインに内部エラーが発生しました。ページをリロードしてみてください。」
これは Win7 と OSX 10.8.2 の両方で発生し、Chrome と Safari の両方で発生します。この問題が発生している他の人はいますか? 回避策は?
以下のコードのjsfiddleを次に示します。jquery-ui を 1.9.2 にダウングレードすると、すべて正常に動作します。
<!DOCTYPE HTML>
<html>
<script type="text/javascript" src="//www.google.com/jsapi"></script>
<script src="//ajax.googleapis.com/ajax/libs/jquery/1.9.1/jquery.min.js"></script>
<script src="//ajax.googleapis.com/ajax/libs/jqueryui/1.10.2/jquery-ui.min.js"></script>
<link type="text/css" href="//ajax.googleapis.com/ajax/libs/jqueryui/1.10.2/themes/smoothness/jquery-ui.css" rel="stylesheet" />
<script>
var loaded = false;
function loadGE() {
google.load('earth', '1', {
callback: function () {
google.earth.createInstance('editmap3d', function (instance) {
initEditGE(instance);
}, function () {
failureGE();
});
}
});
}
function initEditGE(instance) {
loaded = true;
ge = instance;
var lookAt = ge.createLookAt('');
lookAt.setLatitude(36.584207);
lookAt.setLongitude(-121.754322);
lookAt.setRange(5000.0); //default is 0.0
ge.getView().setAbstractView(lookAt);
ge.getWindow().setVisibility(true);
ge.getNavigationControl().setVisibility(ge.VISIBILITY_SHOW);
}
function failureGE() {
console.log("GE failed to load...");
}
$(document).ready(function () {
$("#opendialog").button().click(function () {
$("#editDialog").dialog("open");
if (!loaded) loadGE();
});
$("#editDialog").dialog({
autoOpen: false,
height: 500,
width: 500,
modal: true,
resizable: false
});
})
</script>
<body>
<div>GE in popup</div>
<button id="opendialog">open</button>
<div id="editDialog">
<div id="mapcontainer" style="width:600; height:600;">
<div id="editmap3d" style="height:100%;"></div>
</div>
</div>
</body>
</html>