Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/csharp/314.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# 如何从父页面调用iframe中的脚本?_C#_Javascript_Asp.net_Iframe - Fatal编程技术网

C# 如何从父页面调用iframe中的脚本?

C# 如何从父页面调用iframe中的脚本?,c#,javascript,asp.net,iframe,C#,Javascript,Asp.net,Iframe,我试图从代码隐藏的父页面调用IFrame中的脚本。我用来调用函数的C#I: protected void Page_Load(object sender, EventArgs e) { ... string scr = "document.getElementById('mapframe').contentWindow.addPoint(0, 0);" ClientScript.RegisterStartupScript(GetType(), Guid.NewGuid()

我试图从代码隐藏的父页面调用IFrame中的脚本。我用来调用函数的C#I:

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>

但是,这会导致此错误:“无法获取未定义或空引用的属性'addPoint'。是什么导致了这个错误?我已检查以确保contentWindow不为null。

问题可能是在尝试调用该函数时未加载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>

加载iframe后,可以调用函数add point。
或者您可以将此函数的调用放在
onload
event

中,类似于:您可以使用相同的过程调用addPoint()方法,当然可能会出现安全问题(必须是相同的域页面)。这个问题对我帮助不大。这与我想做的恰恰相反。两个页面都在同一个域中。你说的同一个过程是什么意思?搞定了。正是问题所在。非常感谢。
<iframe 
     name="mapframe" 
     id="mapframe" 
     src="Map.html" 
     style="width:100%;height:360px;" 
     onload="this.contentWindow.addPoint(0,0)"></iframe>