1

我有一个页面设计,其中涉及一些框架,在左侧框架上我有菜单,如果我单击它必须转到其他框架,但它没有加载到指定的框架,而是加载到同一个框架指定链接的位置。

我在java代码中创建如下超链接。

left_menu_HTML.append("<a href=\"#\" target=\"workFrame\" onclick=\"getMenuRequest('"+model.getResource_name()+"','goToHome')\">"+model.getMenu_name()+"</a>");

当用户单击链接时,我使用 struts 1.2.9 我调用这样的操作

function getMenuRequest(actionName,methodName){
   document.forms[0].action=actionName+".htm";
   document.forms[0].method.value=methodName;
   document.forms[0].submit();
}

并且动作类中的方法看起来像这样

public ActionForward goToHome(ActionMapping mapping, ActionForm form,
            HttpServletRequest request, HttpServletResponse response)
        throws Exception {
    //call method to verify Pagetoken
    forwardRequestTo = "departmentHome";
    return mapping.findForward(forwardRequestTo);
}

并为此映射

<action path="/common/DepartmentAction"  name="SecurEyesForm" type="com.secureyes.eswastha.struts.action.DepartmentAction" scope="request" parameter="method" validate="false">
    <forward name="departmentHome" path="/WEB-INF/Masters/DepartmentMaster.jsp"></forward>            
</action>

这就是框架的对齐方式;

</head>
    <frameset border="0" frameborder="0" framespacing="0" rows="64,*">
            <frame border="0" frameborder="0" framespacing="0" id="topFrame" name="topFrame" src="<%=resourcePath%>/common/header.jsp" marginheight="0" marginwidth="0" noresize="noresize" scrolling="no">
            <frameset border="0" frameborder="0" framespacing="0" id="MainFrameSet" cols="209,*">
                    <frame noresize="noresize" border="0" frameborder="0" framespacing="0" id="leftFrame" name="leftFrame" src="<%=resourcePath%>/common/left_menu.jsp" scrolling="auto">
                    <frame border="0" frameborder="0" framespacing="0" id="workFrame" name="workFrame" src="<%=resourcePath%>/common/WelcomePage.jsp" marginheight="7" marginwidth="7" noresize="noresize" scrolling="auto">
            </frameset>
    </frameset>
</html>

请帮我解决这个问题,

不知道也不明白为什么它被加载到同一个框架中。

4

1 回答 1

1

代码看起来不错。

您使用的是哪种 DTD?因为,根据W3C 规范

1) HTML5 支持目标属性。

2) 目标属性在 HTML 4.01 中已弃用。

3) HTML5 不支持框架和框架集,因此 _parent、_top 和 framename 值现在主要与 iframe 一起使用。

编辑:

您应该(您最好这样做;)在您的 jsp 页面的第一行中定义了一个 DTD 来说明浏览器如何解释您的代码。如果您不指定它,浏览器将进入 Quirks 模式,并尝试通过其内容“预测”页面的 DTD(结果很奇怪)。如果您确实指定了它,那么您必须遵守该 DTD 的“规则”,您可以在 W3C 站点上找到该规则。顺便说一句,它们都在维基百科上列出:

http://en.wikipedia.org/wiki/Document_Type_Definition

这就是 DTD 的样子:

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
"http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">

仅供参考,您可以根据所选的 DTD 在官方 W3C 验证器页面上验证您的页面:http: //validator.w3.org/#validate_by_input

希望有帮助

于 2012-10-18T10:15:51.963 回答