2013-08-22 50 views
3

我正在使用JSF Mojarra 2.2.1,Primefaces 4.0快照和IE 9.這個問題發生在IE 9中,當我用f:ajax替換它時也存在類似的問題,除非我使用@all渲染。當命令按鈕通過ajax請求呈現時,它會在以下請求中觸發正常的請求。我創建了一個簡單的代碼來說明問題。JSF&Primefaces&IE 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> 

我的bean是,

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忽略輸入當他們更換jQuery的替換所有方法的onclick =‘JavaScript的’事件。

更新2:

這並不在我家的電腦IE 9(版本相同)發生,它發生只在辦公室的電腦。我看不到安全設置,你知道爲什麼會發生這種情況嗎? Javascript的工作原理,但無法正常工作。

任何幫助,高度讚賞。

感謝

+0

有時,這個問題是由於primefaces的jar,嘗試其他版本的primefaces,可能會工作,也檢查IE控制檯知道問題 –

+0

更改爲2舊的primefaces vers沒有工作,有趣的是它呈現按鈕點擊事件的腳本之後,但它在第一次點擊中執行腳本並且不在第二次點擊中執行。腳本:onclick =「PrimeFaces.ab({source:'testForm:j_idt7',update:'testForm',oncomplete:function(xhr,status,args){alert('a');}}); return false;」 – erdemoo

+0

你可以嘗試沒有冒號,即更新=「testForm」? – berkay

回答

0

請嘗試<h:head>標記中下面的代碼:

<f:facet name="first"> 
    <meta http-equiv="X-UA-Compatible" content="edge" /> 
    <meta http-equiv="Content-Type" content="text/html; charset=UTF-8"/> 
</f:facet> 

讓我們的我知道,如果它幫助。

0

重置瀏覽器(IE 11)的安全設置解決了我的問題。不幸的是,我不知道哪個設置對此負責。

+0

我不明白爲什麼我必須多次重寫答案,直到它不再被自動拒絕,這是由於沒有提到的合格要求,但聲稱不被滿足。 – mm759