diff options
Diffstat (limited to 'share/www/script')
-rw-r--r-- | share/www/script/jquery.history.js | 150 |
1 files changed, 0 insertions, 150 deletions
diff --git a/share/www/script/jquery.history.js b/share/www/script/jquery.history.js deleted file mode 100644 index 14e40824..00000000 --- a/share/www/script/jquery.history.js +++ /dev/null @@ -1,150 +0,0 @@ -/* - * jQuery history plugin - * - * Copyright (c) 2006 Taku Sano (Mikage Sawatari) - * Licensed under the MIT License: - * http://www.opensource.org/licenses/mit-license.php - * - * Modified by Lincoln Cooper to add Safari support and only call the callback once during initialization - * for msie when no initial hash supplied. - */ - - -jQuery.extend({ - historyCurrentHash: undefined, - - historyCallback: undefined, - - historyInit: function(callback){ - jQuery.historyCallback = callback; - var current_hash = location.hash; - - jQuery.historyCurrentHash = current_hash; - if(jQuery.browser.msie) { - // To stop the callback firing twice during initilization if no hash present - if (jQuery.historyCurrentHash == '') { - jQuery.historyCurrentHash = '#'; - } - - // add hidden iframe for IE - $("body").prepend('<iframe id="jQuery_history" style="display: none;"></iframe>'); - var ihistory = $("#jQuery_history")[0]; - var iframe = ihistory.contentWindow.document; - iframe.open(); - iframe.close(); - iframe.location.hash = current_hash; - } - else if ($.browser.safari) { - // etablish back/forward stacks - jQuery.historyBackStack = []; - jQuery.historyBackStack.length = history.length; - jQuery.historyForwardStack = []; - - jQuery.isFirst = true; - } - jQuery.historyCallback(current_hash.replace(/^#/, '')); - setInterval(jQuery.historyCheck, 100); - }, - - historyAddHistory: function(hash) { - // This makes the looping function do something - jQuery.historyBackStack.push(hash); - - jQuery.historyForwardStack.length = 0; // clear forwardStack (true click occured) - this.isFirst = true; - }, - - historyCheck: function(){ - if(jQuery.browser.msie) { - // On IE, check for location.hash of iframe - var ihistory = $("#jQuery_history")[0]; - var iframe = ihistory.contentDocument || ihistory.contentWindow.document; - var current_hash = iframe.location.hash; - if(current_hash != jQuery.historyCurrentHash) { - - location.hash = current_hash; - jQuery.historyCurrentHash = current_hash; - jQuery.historyCallback(current_hash.replace(/^#/, '')); - - } - } else if ($.browser.safari) { - if (!jQuery.dontCheck) { - var historyDelta = history.length - jQuery.historyBackStack.length; - - if (historyDelta) { // back or forward button has been pushed - jQuery.isFirst = false; - if (historyDelta < 0) { // back button has been pushed - // move items to forward stack - for (var i = 0; i < Math.abs(historyDelta); i++) jQuery.historyForwardStack.unshift(jQuery.historyBackStack.pop()); - } else { // forward button has been pushed - // move items to back stack - for (var i = 0; i < historyDelta; i++) jQuery.historyBackStack.push(jQuery.historyForwardStack.shift()); - } - var cachedHash = jQuery.historyBackStack[jQuery.historyBackStack.length - 1]; - if (cachedHash != undefined) { - jQuery.historyCurrentHash = location.hash; - jQuery.historyCallback(cachedHash); - } - } else if (jQuery.historyBackStack[jQuery.historyBackStack.length - 1] == undefined && !jQuery.isFirst) { - // back button has been pushed to beginning and URL already pointed to hash (e.g. a bookmark) - // document.URL doesn't change in Safari - if (document.URL.indexOf('#') >= 0) { - jQuery.historyCallback(document.URL.split('#')[1]); - } else { - var current_hash = location.hash; - jQuery.historyCallback(''); - } - jQuery.isFirst = true; - } - } - } else { - // otherwise, check for location.hash - var current_hash = location.hash; - if(current_hash != jQuery.historyCurrentHash) { - jQuery.historyCurrentHash = current_hash; - jQuery.historyCallback(current_hash.replace(/^#/, '')); - } - } - }, - historyLoad: function(hash){ - var newhash; - - if (jQuery.browser.safari) { - newhash = hash; - } - else { - newhash = '#' + hash; - location.hash = newhash; - } - jQuery.historyCurrentHash = newhash; - - if(jQuery.browser.msie) { - var ihistory = $("#jQuery_history")[0]; - var iframe = ihistory.contentWindow.document; - iframe.open(); - iframe.close(); - iframe.location.hash = newhash; - jQuery.historyCallback(hash); - } - else if (jQuery.browser.safari) { - jQuery.dontCheck = true; - // Manually keep track of the history values for Safari - this.historyAddHistory(hash); - - // Wait a while before allowing checking so that Safari has time to update the "history" object - // correctly (otherwise the check loop would detect a false change in hash). - var fn = function() {jQuery.dontCheck = false;}; - window.setTimeout(fn, 200); - jQuery.historyCallback(hash); - // N.B. "location.hash=" must be the last line of code for Safari as execution stops afterwards. - // By explicitly using the "location.hash" command (instead of using a variable set to "location.hash") the - // URL in the browser and the "history" object are both updated correctly. - location.hash = newhash; - } - else { - jQuery.historyCallback(hash); - } - } -}); - - |