From bf4d7279e90578d0b363d26a856d309fb24ffbaf Mon Sep 17 00:00:00 2001 From: Dries Buytaert Date: Fri, 12 Nov 2010 03:02:43 +0000 Subject: - Patch #565808 by cha0s, thegreat, Dave Reid, Alexander N, andrewlevine, carlos8f: nojs/ajax replacement. --- misc/ajax.js | 11 ++++++++++- 1 file changed, 10 insertions(+), 1 deletion(-) (limited to 'misc') diff --git a/misc/ajax.js b/misc/ajax.js index 73848602f..bee4e4282 100644 --- a/misc/ajax.js +++ b/misc/ajax.js @@ -115,7 +115,16 @@ Drupal.ajax = function (base, element, element_settings) { // Replacing 'nojs' with 'ajax' in the URL allows for an easy method to let // the server detect when it needs to degrade gracefully. - this.url = element_settings.url.replace(/\/nojs(\/|$)/g, '/ajax$1'); + // There are five scenarios to check for: + // 1. /nojs/ + // 2. /nojs$ - The end of a URL string. + // 3. /nojs? - Followed by a query (with clean URLs enabled). + // E.g.: path/nojs?destination=foobar + // 4. /nojs& - Followed by a query (without clean URLs enabled). + // E.g.: ?q=path/nojs&destination=foobar + // 5. /nojs# - Followed by a fragment. + // E.g.: path/nojs#myfragment + this.url = element_settings.url.replace(/\/nojs(\/|$|\?|&|#)/g, '/ajax$1'); this.wrapper = '#' + element_settings.wrapper; // If there isn't a form, jQuery.ajax() will be used instead, allowing us to -- cgit v1.2.3