0

を使用し<xe:djextListTextBox>てビューをフィルタリングしています。Firefox ではすべて正常に動作します。Author + Date などのフィルタ値を選択すると、両方が 2 つのボックスに区切られて表示され、閉じる/削除記号として「x」が表示され、フィルタ リストから削除されます。

しかし、IE8 でこれを試してみると、「x」記号は表示されません。残りの onclick と値の選択は正常に機能します。

開発者ツールでソース コードを調べたところ<span>、Firefox の「x」を含む要素が IE にないことがわかりました。コードを変更してすべてを削除し<this.dojoAttributes>(以下のコードを参照)、IE 8 で「x」を取得しましたが、両方のブラウザーで onclick の完全な更新が機能しなくなりました。クライアント側で texbox が消えますが、ビューは更新されません。サイトのマニュアルを更新すると、ボックスが元に戻ります。onClick はクライアント側のボックスを非表示にするだけで、入力から値を削除しないようです。

<xe:djextListTextBox id="filteredByValue" value="#{sessionScope.allDocsFilterColumnValue}">
    <xe:this.dojoAttributes>
        <xp:dojoAttribute name="enabledLinkStyle" value="font-weight:normal">
        </xp:dojoAttribute>
        <xp:dojoAttribute name="readOnly" value="false">
        </xp:dojoAttribute>
    </xe:this.dojoAttributes>
    <xp:eventHandler event="onclick" submit="true" refreshMode="complete">
        <xp:this.action>
            <xp:actionGroup>
                <xp:executeScript>
                    <xp:this.script><![CDATA[#{javascript://                                
                                        sessionScope.remove('allDocsFilterEnabled');
                                        sessionScope.remove('filterType');
                                        sessionScope.remove('allDocsFilterColumnValue');
                                        sessionScope.selectedTab = sessionScope.remove('filterOldSelectedTab');
                                        }]]></xp:this.script>
                </xp:executeScript>
                <xe:changeDynamicContentAction for="dynamicView">
                </xe:changeDynamicContentAction>
            </xp:actionGroup>
        </xp:this.action>
    </xp:eventHandler>
</xe:djextListTextBox>

上記のコードを使用すると、機能は両方のブラウザーで正常に動作しますが、IE8 で表示される「x」を取得する必要があります。これがないと、ユーザーが混乱するからです。

属性を忘れましたか?または、ある種の CSS で「x」を追加してみる必要がありますか?

4

1 に答える 1

0

わかりました..私は答えを見つけました:

            <xp:eventHandler event="onchange" submit="true"
                refreshMode="complete">
                <xp:this.action>
                    <xp:actionGroup>
                        <xp:executeScript>
                            <xp:this.script><![CDATA[#{javascript://                                
                                sessionScope.remove('allDocsFilterEnabled');
                                sessionScope.remove('filterType');
                                sessionScope.remove('allDocsFilterColumnValue');
                                sessionScope.selectedTab = sessionScope.remove('filterOldSelectedTab');
                                }]]></xp:this.script>
                        </xp:executeScript>
                        <xe:changeDynamicContentAction
                            for="dynamicView">
                        </xe:changeDynamicContentAction>
                    </xp:actionGroup>
                </xp:this.action>
            </xp:eventHandler>

onClick を onChange イベントに変更し、dojo 属性を削除しました。現在、IE8 と Firefox に「x」があり、機能は両方のブラウザーで引き続き機能しています。

于 2013-06-10T12:03:02.310 に答える