You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@wicket.apache.org by "Duto (JIRA)" <ji...@apache.org> on 2017/11/02 09:01:00 UTC
[jira] [Created] (WICKET-6489) Exception when "identifier|code"
javascript not start on PrependJavaScript
Duto created WICKET-6489:
----------------------------
Summary: Exception when "identifier|code" javascript not start on PrependJavaScript
Key: WICKET-6489
URL: https://issues.apache.org/jira/browse/WICKET-6489
Project: Wicket
Issue Type: Bug
Components: wicket
Affects Versions: 7.9.0
Environment: Windows 7 x64
Reporter: Duto
I use the functionnality of prependJavaScript to replace a composant with animation, but I have I a problem when I have two functions (on difference composants), one with normal syntax like this :
{code:java}
target.prependJavaScript("$('" + c.getMarkupId() + "').selectpicker('destroy')");
{code}
and I other one with special syntax for animation :
{code:java}
target.prependJavaScript(String.format("notify|var c=$('#%s.collapse');if(c.length){c.on('hidden.bs.collapse',function(){notify();});c.collapse('hide');}else{notify();}", c.getMarkupId()));
{code}
I get a error when wicket evaluate the javascript :
{code:java}
ERROR: Wicket.Ajax.Call.processEvaluation: Exception evaluating javascript: SyntaxError: expected expression, got keyword 'var', text: (function(){$('#var1').selectpicker('destroy');})();(function(){notify|var c=$('#var2.collapse');if(c.length){c.on('hidden.bs.collapse',function(){notify();});c.collapse('hide');}else{notify();}})();
{code}
The problem is that the regexp "scriptWithIdentifierR" tests that the javascript is in form of *start with* "identifier|code" or my javascript don't start with "identifier|code" because is :
{code:javascript}
(function(){$('#var1').selectpicker('destroy');})();(function(){notify|var c=$('#var2.collapse');if(c.length){c.on('hidden.bs.collapse',function(){notify();});c.collapse('hide');}else{notify();}})();
{code}
There is 2 functions : the first is a normal function but the second is "identifier|code" function.
If I change the var "scriptWithIdentifierR" (https://tinyurl.com/y8r24b5m) to :
{code:Java}
new RegExp("\\(function\\(\\)\\{([a-zA-Z_]\\w*)\\|((.|\\n)*)?\\}\\)\\(\\);$");
{code}
without the ^ of the first caractere that work nicely.
--
This message was sent by Atlassian JIRA
(v6.4.14#64029)