Команда
Я запускаю описанную установку на пристани Maven (8.0.1) и получаю некоторые странные исключения в IE8 (только!).
Ошибка, которую мне выдает IE, выглядит так:
Webpage error details
User Agent: Mozilla/4.0 (compatible; MSIE 8.0; Windows NT 5.1; Trident/4.0)
Timestamp: Wed, 29 Feb 2012 14:09:38 UTC
Message: Unexpected call to method or property access.
Line: 23
Char: 22640
Code: 0
URI: http://127.0.0.1:8080/javax.faces.resource/jquery/jquery.js.jsf?ln=primefaces&v=3.0.1
Описанный фрагмент кода в 'javax.faces.resource / jquery / jquery.js.jsf? Ln = primefaces & v = 3.0.1' в строке 23, символ 22640 - это {{'после' finally ':
resolveWith:function(bw,bv){
if(!bs&&!bu&&!br){
bv=bv||[];
br=1;
try{
while(bt[0]){
bt.shift().apply(bw,bv)
}
}finally{
bu=[bw,bv];
br=0
}
}
return this
}
Здесь JSF XHTML воспроизводит эту ошибку:
<html xmlns="http://www.w3.org/1999/xhtml"
xmlns:c="http://java.sun.com/jstl/core"
xmlns:f="http://java.sun.com/jsf/core"
xmlns:h="http://java.sun.com/jsf/html"
xmlns:ui="http://java.sun.com/jsf/facelets"
xmlns:p="http://primefaces.org/ui">
<f:view contentType="text/html">
<h:head>
</h:head>
<h:body>
<h:form>
<h:form>
<p:dialog id="testDialog" header="Test Dialog" modal="true"
widgetVar="testDialog" dynamic="true" resizable="true"
maximizable="true" showEffect="fade" hideEffect="explode">
<h:outputText value="Dialog!" />
</p:dialog>
<p:commandLink styleClass="button" oncomplete="testDialog.show()">
<h:outputText value="Click me!" />
</p:commandLink>
</h:form>
</h:form>
</h:body>
</f:view>
</html>
Следующий JSF XHTML не выдает ошибку:
<html xmlns="http://www.w3.org/1999/xhtml"
xmlns:c="http://java.sun.com/jstl/core"
xmlns:f="http://java.sun.com/jsf/core"
xmlns:h="http://java.sun.com/jsf/html"
xmlns:ui="http://java.sun.com/jsf/facelets"
xmlns:p="http://primefaces.org/ui">
<f:view contentType="text/html">
<h:head>
</h:head>
<h:body>
<h:form>
<p:dialog id="testDialog" header="Test Dialog" modal="true"
widgetVar="testDialog" dynamic="true" resizable="true"
maximizable="true" showEffect="fade" hideEffect="explode">
<h:outputText value="Dialog!" />
</p:dialog>
<p:commandLink styleClass="button" oncomplete="testDialog.show()">
<h:outputText value="Click me!" />
</p:commandLink>
</h:form>
</h:body>
</f:view>
</html>
Разница заключается во вложенной форме в первом примере. Это сильно идеализированный пример, но он отражает то же поведение, если вкладывает компоненты и диалоги. Всякий раз, когда форма является вложенной, вышеупомянутая ошибка возникает в IE8. FF и другие просто открывают диалог, как и ожидалось.
Если бы не было вложенных форм, но это невозможно, потому что мохарра не позволила бы мне положить, например. commandLink, который содержится в компоненте, не окружая его формой.
CommandButton ведет себя так же. Я прочитал несколько других подходов и ошибок, связанных с сообщением об ошибке IE, но не нашел никакого решения или полезного совета.
Мне было бы интересно следующее:
а) Можете ли вы воспроизвести данное поведение?
б) Есть ли у вас какие-либо идеи, как обойти или решить эту проблему (возможно, каким-то образом обновляя jquery)?
Сначала я попытался проверить свой HTML5, но даже с не HTML5 и очень сокращенным html это происходит.
Спасибо за любую помощь, подсказку или, возможно, ссылку на любую информацию заранее!
С уважением,
Чувак
PS: Пожалуйста, если вы думаете, что знаете что-то, подтолкните меня, чтобы я добавил больше деталей или необходимых ресурсов, я был бы рад помочь другим здесь!