我有一些代码在html页面中运行,该页面调用window.external上存在的函数。代码有效:
SomeCode.js(位于somePage.html):
window.external['someFunction']();
但是,出于测试目的,我需要将iftml中的html页面嵌入到单独的测试页面中。测试页代码
TestPage.html:
window.frames[0].external['someFunction'] = function() { console.log('success'!); }; // Doesn't work
window.frames[0].src = "http://somePage.com/somePage.html";
window.frames[0].external['someFunction'] = function() { console.log('success'!); }; // window.external['someFunction'] is still null from the perspective of the code in SomeCode.js. oesn't work
我在设置src之前和之后尝试了多种设置功能的方法。奇怪的是,如果我将window.frames [0] .external打印到控制台,window.frames [0]。外部DOES似乎有一些功能'组。它几乎像window.frames [0] .external是一个与iframe中javascript内部使用的对象不同的对象。
非常感谢任何想法。
谢谢, 蝉
答案 0 :(得分:0)
如果函数for (var i = data.length - 1; i >= 0; i--){
var Lat = data[i].Item.Coordinate.Lat;
var Lon = data[i].Item.Coordinate.Lon;
var LatLon = new gm.LatLng(jobLat, +jobLon);
var marker = new gm.Marker({
position: LatLon,
map: map,
visible: true
});
var infobox = new InfoBox ({
position: marker.position or LatLon
});
marker.newContent = document.getElementById("infobox_"+data[i].Item.Id);
gm.event.addListener(marker, 'click', (function (marker) {
return function (pin, suppressInfoWindow) {
if (!suppressInfoWindow) {
infobox.setContent(marker.newContent);
infobox.open(map, marker);
}
}
}
resultMarkers.push(marker);
有一些参数,则必须在先行行中声明它。如果你不这样做,它就不起作用。
应该是:
var infoboxWidth = -650/2;
if(getWidth === 'xs'){
infoboxWidth = -320/2;
}
var infobox = new InfoBox({
pixelOffset: new gm.Size(infoboxWidth, -65),
alignBottom: true
});