页面未加载到targetFrame中

时间:2012-10-18 09:59:24

标签: java javascript html struts frame

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

我在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>

请帮我解决这个问题,

不知道也无法理解为什么它会被加载到同一帧中。

1 个答案:

答案 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

希望有所帮助