我正在为我的网络应用程序使用框架。 描述 (1)左框架带有一个按钮列表(单击它们会在右框架中打开一个网页) (2)右框架,打开左框架传递的网页。
问题:按钮单击在生产机器,Windows XP,32位上的Internet Explorer 8.0中完美运行。
按钮点击事件不会在右侧框架中打开任何内容,只是保持不变 Firefox,Chrome,Internet Explorer 9.0
加载框架的初始代码
<%@ Page Language="vb" AutoEventWireup="false" Codebehind="frmMain.aspx.vb" Inherits="XYZ" smartNavigation="True"%>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Frameset//EN" http://www.w3.org/TR/xhtml1/DTD/xhtml1-frameset.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<TITLE>frmMain</</TITLE>
<meta name="GENERATOR" content="Microsoft Visual Studio .NET 7.1">
<meta name="CODE_LANGUAGE" content="Visual Basic .NET 7.1">
<meta name="vs_defaultClientScript" content="JavaScript">
<meta name="vs_targetSchema" content="http://schemas.microsoft.com/intellisense/ie5">
</head>
<frameset COLS="20%,80%">
<frame name="frame1" src="frmbuttons.aspx">
<frame name="frame2" src="frmbegin.aspx">
</frameset>
示例代码(左框中的按钮):
Private Sub btn1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles btn1.Click
Dim url As String = String.Empty
url = "test.aspx"
Dim frameScript As String = "<script language='javascript'>" & "window.parent.frames(1).location='" & url & "';</script>"
ScriptManager.RegisterStartupScript(Me.Page, Me.Page.GetType, "FrameScript", frameScript, False)
end sub
任何帮助将不胜感激。
答案 0 :(得分:1)
我找到了解决方案。此代码导致错误:
Dim frameScript As String = "window.parent.frames(1).location='" & url & "'"
由于括号window.parent.frames(1)
,上述行在()
中有错误;这个问题的正确解决方案是:
此代码是正确的:
Dim frameScript As String = "window.parent.frames[1].location='" & url & "'"
VB.Net使用括号进行数组索引访问,但Javascript使用方括号。一旦我改为正确的语法,代码在所有浏览器中都能正常工作。
答案 1 :(得分:0)
你试过了吗?
Dim frameScript As String = "window.parent.frames(1).location='" & url & "'"
ScriptManager.RegisterStartupScript(Me.Page, Me.Page.GetType, "FrameScript", frameScript, False)
根据我使用ScriptManager的经验,我从来不需要这些标签,它总是在IE,Chrome和FF中工作。