Per Henrik建议修复IE中带有xPage扩展名的奇怪的拉伸对话框问题。
Fixing "stretched" XPage extension library Name Picker in 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>
答案 0 :(得分:3)
我偶然发现了同样的问题。我的修复程序受a blog post by Paul Withers on the subject启发,涉及使用Dojo DateTextBox和TimeTextBox进行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>
然后我在主题中使用以下内容来使用dijit.form.DateTextBox和dijit.form.TimeTextBox for IE而不是标准的XPages日期和时间选择器:
<!-- 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>
答案 1 :(得分:1)
我只是使用了dojo日期选择器,它似乎对我有用。没有理由参与主题。
答案 2 :(得分:1)
IE9工作正常,但如果打开兼容模式则不会...... IE科幻小说