我有一个页面设计,它涉及一些框架,在左框架我有菜单,如果我点击它必须转到其他框架,但它没有加载到指定的框架,而是它被加载到指定链接的同一帧。
我在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();
}
并且action类中的方法看起来像这样
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>
请帮我解决这个问题,
不知道也无法理解为什么它会被加载到同一帧中。
答案 0 :(得分:1)
代码似乎很好。
您使用的是哪种DTD?因为,根据W3C specs,
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">
仅供参考,您可以在官方W3C验证页面上根据所选的DTD验证您的页面:http://validator.w3.org/#validate_by_input
希望有所帮助