MyFaces で IceFace 3.3.0 を使用しています。ace:dialog に問題があります。IE 7 または 8 では動作しません。他のブラウザでは正常に動作します。
問題を示す簡単な例を次に示します。
<?xml version="1.0" encoding="ISO-8859-1" ?>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xml:lang="de" lang="de" xmlns="http://www.w3.org/1999/xhtml"
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></title>
</h:head>
<h:body>
<ace:dialog id="helpDialog" header="Help" widgetVar="helpDialog"
closable="true" modal="true" draggable="false" showEffect="clip"
hideEffect="fade" closeOnEscape="true" width="400" height="600">
<h:outputText value="Help Dialog" />
</ace:dialog>
<h:form id="myform">
<ace:panel id="mypanel" header="Test" closable="false" toggleable="false">
<h:commandLink immediate="true" value="> Dialog" onclick="helpDialog.show();" />
</ace:panel>
</h:form>
</h:body>
</html>
IE8 では、このコードはダイアログを表示せず、ページの読み込み時に JavaScript エラーを生成します。
SCRIPT438 object doesn't support this property or method
この生成された行に JavaScript エラーが表示されます。
helpDialog = ice.ace.create("Dialog",["helpDialog_main",{"isVisible":false,"minHeight":0,"width":400,"height":600,"draggable":false,"modal":true,"show":"clip","hide":"fade","title":"Help","ariaEnabled":true}])
MyFaces や Mojarra のさまざまなバージョンを既に試したので、これは icefaces の問題だと思います。
どんな助けでも大歓迎です!