我正在尝试从后面的代码中的父页面调用IFrame中的脚本。我用C#来调用函数:
protected void Page_Load(object sender, EventArgs e)
{
...
string scr = "document.getElementById('mapframe').contentWindow.addPoint(0, 0);"
ClientScript.RegisterStartupScript(GetType(), Guid.NewGuid().ToString(), scr , true);
}
iFrame的HTML:
<iframe name="mapframe" id="mapframe" src="Map.html" style="width:100%;height:360px;"></iframe>
IFrame中的Javascript:
function addPoint(lat, lon) {
var myLatlng = new google.maps.LatLng(lat, lon);
var marker = new google.maps.Marker({
position: myLatlng,
map: map,
title: "Hit"
});
}
但是,这会导致此错误:“无法获取未定义或空引用的属性'addPoint'”。导致此错误的原因是什么?我已经检查过以确保contentWindow不为null。
答案 0 :(得分:5)
当您尝试调用该函数时,问题可能是您的iframe未加载
尝试以下
document.getElementById('mapframe').onload = function() {
// I prefer frames.mapFrame.addPoint();
document.getElementById('mapframe').contentWindow.addPoint(0,0);
}
甚至
<iframe
name="mapframe"
id="mapframe"
src="Map.html"
style="width:100%;height:360px;"
onload="this.contentWindow.addPoint(0,0)"></iframe>
答案 1 :(得分:0)
加载iframe然后可以调用函数添加点。
或者您可以在onload
事件