Richfaces未定义javascript错误
Posted
技术标签:
【中文标题】Richfaces未定义javascript错误【英文标题】:Richfaces is not defined javascript error 【发布时间】:2012-05-11 08:17:22 【问题描述】:当我尝试调用 Richfaces.showModalPanel('id') 时,我收到 Richfaces is not defined javascript 错误并且没有任何反应。
在我的示例应用程序中,我有两个页面,一个是主视图,另一个页面是子视图。子视图使用上述调用在主视图中调用 popupPanel。我不确定出了什么问题。任何指针将不胜感激。
这是我拥有的页面:
首页:
<!DOCTYPE html>
<html lang="en"
xmlns="http://www.w3.org/1999/xhtml"
xmlns:f="http://java.sun.com/jsf/core"
xmlns:h="http://java.sun.com/jsf/html"
xmlns:ui="http://java.sun.com/jsf/facelets"
xmlns:rich="http://richfaces.org/rich"
xmlns:c="http://java.sun.com/jsp/jstl/core"
xmlns:richext="http://java.sun.com/jsf/composite/richext">
<h:head>
<title>Page Title</title>
</h:head>
<h:body>
<ui:include id="nextPageInclude" src="secondpage.xhtml"/>
<rich:popupPanel id="logoutDialogId"
autosized="true"
resizeable="false"
moveable="true"
modal="true"
style="border:5px solid #5e81ac; background-color:#dce3ed;">
<h:outputText value="Inside logout window"/>
</rich:popupPanel>
</h:body>
</html>
第二页:
<ui:composition xmlns="http://www.w3.org/1999/xhtml"
xmlns:ui="http://java.sun.com/jsf/facelets"
xmlns:h="http://java.sun.com/jsf/html"
xmlns:f="http://java.sun.com/jsf/core"
xmlns:a4j="http://richfaces.org/a4j"
xmlns:rich="http://richfaces.org/rich">
<h:head/>
<a4j:outputPanel id='headerLinks' layout="block">
<ul id="sddm">
<li>
</li>
<li>
</li>
<li>
<a4j:commandLink id="logoutLinkId"
value="Logout"
onclick="Richfaces.showPopupPanel('logoutDialogId')"
styleClass="linkLogout"/></li>
</ul>
<div style="clear:both"></div>
</a4j:outputPanel>
</ui:composition>
编辑:附加加载的 JS 截图
谢谢,
【问题讨论】:
【参考方案1】:上述代码的问题是,由于 RichFaces 4.0 我们无法进行旧调用来打开 popupPanel,因此您编写它的方式已过时,如果可以,请尝试以下操作:-
<a4j:commandLink id="logoutLinkId"
value="Logout"
onclick="#rich:component('logoutDialogId').show();"
styleClass="linkLogout"/>
类似地隐藏 popupPanel 使用
<a4j:commandLink id="Close_Modal"
value="Close Logout"
onclick="#rich:component('logoutDialogId').hide();"
styleClass="linkLogout"/>
【讨论】:
欢迎您 :) 我在 *** 上对世界的第一个贡献 欢迎来到 SO。继续贡献你的知识。给+1。顺便说一句,您可能会看到我提出的很多 Richfaces4 相关问题(我们正在从 3.x 升级到 4.2) 如果我能找到问题,我会全力以赴,我会分享答案:)【参考方案2】:从包含组合中删除<h:head>
。它不属于那里,并且可能会损坏生成的 HTML 头。 <h:head>
应该在整个视图中只声明一次,最好只在主模板中声明。
另一个可能的原因是您有一个Filter
,它恰好与资源请求的 URL 模式匹配,而这反过来又没有完全正确地完成它的工作。检查所有已生成的<script>
元素的 HTML 源代码,然后在 Firebug/Chrome/IE9 中按 F12 并浏览 Net(或 Network)选项卡以查看已检索到的浏览器至于JS资源。
更新:对象名称为RichFaces
,大写F
,而不是Richfaces
。也修复它。
【讨论】:
嗨,BalusC,最初我确实尝试过不带头的作曲,但没有用。然后我在那里添加了 h:head ,仍然是同样的问题。我认为发生了其他事情。 嗨 BalusC,附上加载的 JS 截图。它确实包含 jsf.js.xhtml。richfaces.js
包含该功能。请检查浏览器实际检索到的内容。您的问题表明它返回了 404 或完全不同的东西。或者直接在地址栏中复制该脚本 URL。
脚本中包含richfaces.js.xhtml 是否正确?应该只是 richfaces.js 吧?
是的,没错。 JSF 资源由FacesServlet
处理。顺便说一句,函数名不应该是RichFaces
而不是Richfaces
吗?以上是关于Richfaces未定义javascript错误的主要内容,如果未能解决你的问题,请参考以下文章
Richfaces 4 a4j:commandLink 操作未在 Rich:popupPanel 中触发
Javascript 错误:JupyterLab 中未定义 IPython
Bootstrap 设置错误:未捕获 ReferenceError:未定义 jQuery 和未捕获错误:Bootstrap 的 JavaScript 需要 jQuery
Bourbon Refills Navigation JavaScript 错误:未捕获类型错误:未定义不是函数
为啥“”.abcd 返回未定义的值而不是在 Javascript 中抛出未定义的错误(但 Typescript 抛出警告)