Я использую JSF Mojarra 2.2.1, Primefaces 4.0 Snapshot и IE 9. Эта проблема возникает в IE 9, и аналогичная проблема возникает, когда я заменяю его на f: ajax, если я не визуализирую с помощью @all. Когда командная кнопка отображается через запрос ajax, в следующем запросе запускается обычный запрос. Я создал простой код, чтобы проиллюстрировать проблему.
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE html>
<html xmlns="http://www.w3.org/1999/xhtml"
xmlns:f="http://java.sun.com/jsf/core"
xmlns:h="http://java.sun.com/jsf/html"
xmlns:p="http://primefaces.org/ui">
<h:head>
</h:head>
<h:body>
<h:form id="testForm">
<h1>Test of IE9 Ajax</h1>
Text: <h:outputText value="#{testBean.count}" />
<br />
<p:commandButton oncomplete="alert('a')" update=":testForm"
action="#{testBean.increment}" value="click me">
</p:commandButton>
</h:form>
</h:body>
</html>
И моя фасоль,
package test;
import java.io.Serializable;
import javax.faces.bean.ManagedBean;
import javax.faces.bean.ViewScoped;
@ManagedBean
@ViewScoped
public class TestBean implements Serializable{
/**
*
*/
private static final long serialVersionUID = 1L;
private int count = 0;
public void increment()
{
count++;
}
public int getCount() {
return count;
}
public void setCount(int count) {
this.count = count;
}
}
В тесте предупреждение выдается только для нечетных номеров, что является другим индикатором того, что вызов ajax не выполняется плавно.
Обновлять:
Я понял, что это происходит, потому что IE9 игнорирует события input onclick = "javascript", когда они заменяются методом jquery replace all.
Обновление 2:
Этого не происходит на моем домашнем компьютере IE 9 (той же версии), это происходит только на офисном компьютере. Я не вижу настроек безопасности. Вы знаете, почему это происходит? Javascript работает, но не работает должным образом.
Любая помощь высоко ценится.
Спасибо