0

我正在尝试使用 Icefaces JSF 库创建一个 panelPopup。

我使用 Netbeans 和 Glassfish。我正确安装了 Icefaces Netbeans 集成插件,并在 Netbeans 上创建了作为 Icefaces 项目的小型测试项目。

经测试,弹出对话框并没有真正弹出页面(它是嵌入在页面中的)

Firebug(在 FF 上测试时)报告为“未定义 ActiveXObject”。

但输出在 FF、IE、Chrome 和 Opera(所有最新版本)中保持不变

页面代码如下:

<?xml version='1.0' encoding='UTF-8' ?>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml"
      xmlns:ui="http://java.sun.com/jsf/facelets"
      xmlns:f="http://java.sun.com/jsf/core"
      xmlns:h="http://java.sun.com/jsf/html"
      xmlns:icecore="http://www.icefaces.org/icefaces/core"
      xmlns:ace="http://www.icefaces.org/icefaces/components"
      xmlns:ice="http://www.icesoft.com/icefaces/component">
    <h:head>
        <title>ICEfaces 2</title>
        <link rel="stylesheet" type="text/css" href="./xmlhttp/css/rime/rime.css"/>
    </h:head>
    <h:body styleClass="ice-skin-rime">
        <h:form id="form">         

            <ice:panelPopup rendered="true" visible="true">
                <f:facet name="header">
                    popup header contents
                </f:facet>
                <f:facet name="body">
                    popup body contents
                </f:facet>
            </ice:panelPopup>          

        </h:form>
    </h:body>
    <h:outputStylesheet library="org.icefaces.component.skins" name="rime.css" />
</html>

请任何人告诉我这是什么。

4

1 回答 1

0

ActiveXObject是 MSIE 专有的 JavaScript 对象。该错误似乎出现在 Firefox 中,我敢打赌,涉及的 JavaScript 代码错误地使用了浏览器检测而不是功能检测,并且以某种方式将您的 Firefox 浏览器检测为 MSIE 浏览器,并且不小心尝试分配ActiveXObject实例。

或者,更糟糕的是,JavaScript 代码依赖ActiveXObject于所有目标 Web 浏览器都支持,并且在没有进行任何浏览器或功能检测的情况下粗心地使用它。这种浏览器范围的支持实际上是不真实的,它只有微软的创建才支持。

这就是到目前为止所提供的信息所能说的。您必须运行 JavaScript 调试器(Firebug ? Venkman ? 等)并确定 JavaScript 代码中的罪魁祸首,最终将其回溯到服务器端代码,然后相应地对其进行修复或将其报告给负责的维护者。

于 2011-07-29T18:05:59.057 回答