Javascript 在iframe内打开asp.net页
在我的网站上我有两个页面。。。一个是Javascript 在iframe内打开asp.net页,javascript,jquery,asp.net,vb.net,iframe,Javascript,Jquery,Asp.net,Vb.net,Iframe,在我的网站上我有两个页面。。。一个是Assistance.aspx,另一个是Help01.aspx 我要做的是打开iFrame中的第二个页面,该页面位于表格列中。此列属于Assistance.aspx页面中的表格: 为此,我使用以下代码: <iframe id="iFrame" runat="server" class="tablecolumndiv" > 它给了我一个错误: 对象引用未设置为对象的实例。 因为Me.FindControl(“iFrame”)没有任何值 当我从元素
Assistance.aspx
,另一个是Help01.aspx
我要做的是打开
iFrame
中的第二个页面,该页面位于表格列中。此列属于Assistance.aspx
页面中的表格:为此,我使用以下代码:
<iframe id="iFrame" runat="server" class="tablecolumndiv" >
它给了我一个错误:对象引用未设置为对象的实例。
因为
Me.FindControl(“iFrame”)
没有任何值当我从元素中删除
runat
时,该错误被消除。
为什么?*其他信息*
出于同样的原因,我还使用了以下脚本:
<script type="text/javascript">
function setPage(frame, pName) {
document.getElementById(frame).src = pName;
}
</script>
这个脚本也给我带来了同样的错误。最后,我们看到这个问题有两个解决方案,这两个解决方案中的每一个都有自己的结果。
第一种解决方案是像这样声明iFrame:
Protected WithEvents iFrame As System.Web.UI.HtmlControls.HtmlGenericControl
在按钮单击处理程序中,我们使用:iFrame.Attributes("src") = "/Pages/Support/Asp/Help01.aspx"
在设计视图区域中,我们使用:Private Sub button1_Click(sender As Object, e As System.EventArgs) Handles button1.Click
frame1.Attributes("src") = "/Pages/Support/Asp/Help01.aspx"
End Sub
<iframe id="iFrame" runat="server" class="tablecolumndiv" >
此解决方案效果良好,并产生了极好的效果。当然,附加信息中描述了另一种解决方案,但需要从设计视图区域的声明中删除
runat=“server”
。选择并选择…当您删除runat=server标记时,我假设代码本身不工作?您是否也关闭了iframe标记?不,代码运行平稳,我没有关闭
iframe
您是否尝试过iframe.Attributes(“src”)=“/Pages/Support/Asp/Help01.aspx”
?直接来说,如果不使用FindControl,这可能是由于asp.net“更改”了id(它会添加父id和各种垃圾)。运行页面并在浏览器中使用chrome dev tools/firebug检查元素并检查id(或仅查看源代码)。但是,对于不需要使用FindControl的服务器端控件,可以通过id:iFrame.Attributes
Yes引用,并且运行非常好。。。但当我在屏幕上看到它时,它会变白两到三十秒,然后给出我需要的结果。
iFrame.Attributes("src") = "/Pages/Support/Asp/Help01.aspx"
<iframe id="iFrame" runat="server" class="tablecolumndiv" >