【问题标题】:Primefaces JS Inserted before other resources causing error [duplicate]Primefaces JS在其他资源之前插入导致错误[重复]
【发布时间】:2012-05-12 08:33:35
【问题描述】:

我正在使用 JSF2.0 和 Eclipse Indigo,最近我将 PrimeFaces 库添加到我的构建路径中。在此之前,我有一个使用 jquery1.7.2 + colorbox 工作的“灯箱”。我有以下内容:

<h:outputStylesheet library="css" name="style.css" type="text/css"/>  
<h:outputStylesheet library="css" name="colorbox.css" type="text/css"/>        
<script src="https://ajax.googleapis.com/ajax/libs/jquery/1.7.2/jquery.min.js"></script>  
<h:outputScript library="js" name="jquery.colorbox.js" target="head"/>

资源位于WebContent/resources/js

添加 PrimeFaces 后,我的“灯箱”不再起作用,因为找不到 colorbox 函数。查看 JSF2 生成的源代码后,我注意到该库在我的 jquery.colorbox.js 上方插入了它自己的 jQuery 版本,因此颜色框库无法使用 jQuery 库。此外,缺少 jquery.colorbox.js 包含。

如何将 PrimeFaces JavaScript 库重新定位到页面上的其他位置?为什么我的jquery.colorbox.js 没有像以前那样加载?

我的实际页面可能有用。是here

我仍然从 Chrome 中的 JavaScript 控制台收到相同的错误。 当页面加载时我得到这个:

Uncaught ReferenceError: jQuery is not defined

当我点击我的 colorbox 链接时,以下内容:

Uncaught TypeError: Object [object Object] has no method 'colorbox'
(anonymous function):8080/g5.ambience/:24
b.event.dispatchjquery.js.html:16
b.event.add.bD.handle.bB

即使有 Daniels 的建议,这里是产生的来源:http://pastie.org/3851179

【问题讨论】:

    标签: javascript eclipse jsf-2 primefaces colorbox


    【解决方案1】:

    1)尝试使用primefaces捆绑的jquery(3.2版本使用1.7.1 jQuery)

    替换

    <script src="https://ajax.googleapis.com/ajax/libs/jquery/1.7.2/jquery.min.js"></script>  
    

    <h:outputScript library="primefaces" name="jquery/jquery.js" target="head" />
    <h:outputScript target="head">
        $ = jQuery;
    </h:outputScript>
    

    编辑

    2) 另一种选择是在加载 primefaces 捆绑 jQuery 之前加载您的 jQuery 和 colorbox 插件(未经测试,甚至不确定它是否会工作,所以不推荐 :))

    <f:facet name="first">
        <h:outputScript library="primefaces" name="jquery/jquery.js"/>
        <h:outputScript target="head">
            $ = jQuery;
        </h:outputScript>
    </f:facet>
    <h:outputScript library="js" name="jquery.colorbox.js" target="head"/>
    

    【讨论】:

    • 当我将库添加到我的构建路径时,它会自动注入 PrimeFaces jquery.js。我尝试删除我的 jquery.js 包含并查看我的颜色框是否正常工作。不幸的是,它没有帮助。问题是 jquery.colorbox.js 已停止显示,即使我有 &lt;h:outputScript&gt; 标记并且在我将 PrimeFaces 包含在我的构建路径中之前它正在工作。
    • 我会在我的工作站上试一试 :) 如果它有效,我会接受你的回答 ;)
    • b.t.w 你用什么 primefaces 版本?
    • 我正在使用 PrimeFaces v3.2;最新版本。
    • 不走运。 colorbox 现在确实出现了,但仍然不起作用。
    猜你喜欢
    • 1970-01-01
    • 2013-10-30
    • 1970-01-01
    • 1970-01-01
    • 2014-04-06
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2020-05-21
    相关资源
    最近更新 更多