1

Per Henrik は、xPage 拡張機能を使用した IE で発生する奇妙な引き伸ばされたダイアログの問題の修正を提案しました。

「ストレッチされた」XPage 拡張ライブラリの Name Picker を IE で修正しますか?

これはうまく機能し、問題を修正しました。しかし、DateTimePicker で問題が発生します。互換モードでは、DateTimePicker のカレンダーが表示されますが、すぐに閉じられます。ここにデモをまとめました:

 <xp:this.beforeRenderResponse>
    <![CDATA[#{javascript:  if (context.getUserAgent().isIE()) {
    var response = facesContext.getExternalContext().getResponse();
    response.setHeader("X-UA-Compatible", "IE=8");
}}]]>
</xp:this.beforeRenderResponse>




<xp:inputText id="inputText1">
    <xp:dateTimeHelper id="dateTimeHelper1"></xp:dateTimeHelper>
    <xp:this.converter>
        <xp:convertDateTime type="date"></xp:convertDateTime>
    </xp:this.converter>
</xp:inputText>  
4

3 に答える 3

3

私はまったく同じ問題に遭遇しました。私の修正は、このテーマに関する Paul Withers のブログ投稿に触発されたもので、Dojo の DateTextBox と TimeTextBox for IE を使用する必要があります。

標準の日付フィールドを使用します。

<xp:inputText id="FejlDato" value="#{document.FejlDato}">
    <xp:this.converter>
        <xp:convertDateTime type="date"></xp:convertDateTime>
    </xp:this.converter>
    <xp:dateTimeHelper></xp:dateTimeHelper>
</xp:inputText>

そして、テーマでそれらをターゲットにするために、時間フィールドにテーマ ID を追加します。

<xp:inputText id="FejlTid" value="#{document.FejlTid}">
    <xp:this.converter>
        <xp:convertDateTime type="time"></xp:convertDateTime>
    </xp:this.converter>
    <xp:this.themeId><![CDATA[${javascript:if (context.getUserAgent().isIE()) { "InputField.TimePicker" }}]]></xp:this.themeId>
    <xp:dateTimeHelper></xp:dateTimeHelper>
</xp:inputText>

次に、標準の XPages の日付と時刻のピッカーの代わりに、IE 用の dijit.form.DateTextBox と dijit.form.TimeTextBox を使用するために、テーマで以下を使用します。

<!-- DatePicker for IE8 and IE9 -->
<resources>
    <dojoModule rendered="#{javascript:context.getUserAgent().isIE()}">
        <name>dijit.form.DateTextBox</name>
     </dojoModule>
     <dojoModule rendered="#{javascript:context.getUserAgent().isIE()}">
        <name>dijit.form.TimeTextBox</name>
     </dojoModule>
</resources>
<control>
    <name>InputField.DateTimePicker</name>
    <property>
        <name>dojoType</name>
        <value>#{javascript:context.getUserAgent().isIE()?'dijit.form.DateTextBox':''}</value> 
    </property>
</control>
<control>
    <name>InputField.TimePicker</name>
    <property>
        <name>dojoType</name>
        <value>#{javascript:context.getUserAgent().isIE()?'dijit.form.TimeTextBox':''}</value> 
    </property>
</control>
于 2012-05-21T14:34:39.070 に答える
1

私は単に道場の日付ピッカーを使用しましたが、それは私にとってはうまくいくようでした. テーマを巻き込む理由はありません。

于 2012-05-29T20:25:06.933 に答える
1

IE9 は正常に動作しますが、互換モードをオンにすると動作しません... IE サイエンス フィクション

于 2012-11-21T07:53:37.327 に答える