Updated Branches: refs/heads/master 19e7c1cdc -> 5629a6008
WICKET-5397 target.prependJavaScript and JQuery-Animation in IE8 Use RegExp to find all occurrences of a pattern in a string. String.split(RegExp) doesn't work in IE8 Project: http://git-wip-us.apache.org/repos/asf/wicket/repo Commit: http://git-wip-us.apache.org/repos/asf/wicket/commit/5629a600 Tree: http://git-wip-us.apache.org/repos/asf/wicket/tree/5629a600 Diff: http://git-wip-us.apache.org/repos/asf/wicket/diff/5629a600 Branch: refs/heads/master Commit: 5629a600828df0f994c148804d9eb1c08ffd2fb0 Parents: 19e7c1c Author: Martin Tzvetanov Grigorov <[email protected]> Authored: Tue Oct 29 14:20:10 2013 +0200 Committer: Martin Tzvetanov Grigorov <[email protected]> Committed: Tue Oct 29 14:26:50 2013 +0200 ---------------------------------------------------------------------- .../wicket/ajax/res/js/wicket-ajax-jquery.js | 24 +++++--------------- 1 file changed, 6 insertions(+), 18 deletions(-) ---------------------------------------------------------------------- http://git-wip-us.apache.org/repos/asf/wicket/blob/5629a600/wicket-core/src/main/java/org/apache/wicket/ajax/res/js/wicket-ajax-jquery.js ---------------------------------------------------------------------- diff --git a/wicket-core/src/main/java/org/apache/wicket/ajax/res/js/wicket-ajax-jquery.js b/wicket-core/src/main/java/org/apache/wicket/ajax/res/js/wicket-ajax-jquery.js index 7063102..8ba7b04 100644 --- a/wicket-core/src/main/java/org/apache/wicket/ajax/res/js/wicket-ajax-jquery.js +++ b/wicket-core/src/main/java/org/apache/wicket/ajax/res/js/wicket-ajax-jquery.js @@ -1066,23 +1066,7 @@ * when there are scripts which require manual call of 'FunctionExecutor#notify()' * @type {RegExp} */ - var scriptSplitterR = new RegExp("(\\(function\\(\\)\\{.*?}\\)\\(\\);)"); - - /** - * Removes all empty items from an Array of String's - * @param original The array is empty string elements - * @returns {Array[String]} An array that has no empty elements - */ - // Needed because String.split(scriptSplitterR) returns something like ["", "script1", "", "script2", ""] - var cleanArray = function (original) { - var result = []; - for(var i = 0; i < original.length; i++){ - if (original[i]) { - result.push(original[i]); - } - } - return result; - }; + var scriptSplitterR = new RegExp("\\(function\\(\\)\\{.*?}\\)\\(\\);", 'gi'); // get the javascript body var text = Wicket.DOM.text(node); @@ -1131,7 +1115,11 @@ // by invoking identifier();. This allows usage of some asynchronous/deferred logic before the next script // See WICKET-5039 if (scriptWithIdentifierR.test(text)) { - var scripts = cleanArray(text.split(scriptSplitterR)); + var scripts = []; + var scr; + while ( (scr = scriptSplitterR.exec(text) ) != null ) { + scripts.push(scr[0]); + } for (var s = 0; s < scripts.length; s++) { var script = scripts[s];
