【问题标题】:Page is not loaded in targetFrame页面未在 targetFrame 中加载
【发布时间】:2012-10-18 09:59:23
【问题描述】:

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

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

请帮我解决这个问题,

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

【问题讨论】:

    标签: java javascript html struts frame


    【解决方案1】:

    代码看起来不错。

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

    1) HTML5 支持 target 属性。

    2) 在 HTML 4.01 中不推荐使用 target 属性。

    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

    希望有帮助

    【讨论】:

    • 感谢您的信息,如何找到我们使用的 HTML 版本,抱歉这类问题,我真的不知道
    猜你喜欢
    • 2013-06-13
    • 1970-01-01
    • 1970-01-01
    • 2016-06-10
    • 2017-02-02
    • 2017-10-11
    • 2013-09-15
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多