X-Git-Url: https://git.sesse.net/?p=pr0n;a=blobdiff_plain;f=files%2Fpr0n-fullscreen.js;h=335906741fc077143f1322ad454fe666dea1257f;hp=1d82ebc3280e05631a01c4ee62488479cf689e89;hb=44c1611c549b7987e2394988e6bc66b1ad72d203;hpb=0d94c302534584de439b115a9140ceac4163fd69 diff --git a/files/pr0n-fullscreen.js b/files/pr0n-fullscreen.js index 1d82ebc..3359067 100644 --- a/files/pr0n-fullscreen.js +++ b/files/pr0n-fullscreen.js @@ -40,20 +40,6 @@ function find_width() return [null,null]; } -function parse_image_num(url, default_value) { - var url_array = (window.location.toString().split("#")); - if (url_array.length != 2) { - return default_value; - } - - var num = parseInt(url_array[1]); - if (num > 1 && num <= global_image_list.length) { // and then num != NaN - return (num - 1); - } else { - return default_value; - } -} - /* * pr0n can resize to any size we'd like, but we're much more likely * to have this set of fixed-resolution screens cached, so to increase @@ -181,8 +167,7 @@ function display_image_num(num, element_id) center_image(num); // replace the anchor part (if any) with the image number - var baseurl = (window.location.toString().split("#"))[0]; - window.location = baseurl + "#" + (num+1); + window.location.hash = "#" + (num+1); } return img; @@ -399,6 +384,8 @@ function key_down(which) } } else if (which == 27) { // escape set_opacity("close", 0.99); + } else { + check_for_hash_change(); } } @@ -418,6 +405,8 @@ function key_up(which) { do_close(); } else if (which == 32 && global_select) { // space select_image(global_image_list[global_image_num][0], global_image_list[global_image_num][1]); + } else { + check_for_hash_change(); } } @@ -437,3 +426,20 @@ function ie_png_hack() close.outerHTML = ""; } } + +function parse_image_num(default_value) { + var num = parseInt(window.location.hash.substr(1)); + if (num >= 1 && num <= global_image_list.length) { // and then num != NaN + return (num - 1); + } else { + return default_value; + } +} + +function check_for_hash_change() { + var num = parse_image_num(-1); + if (num != -1 && num != global_image_num) { + global_image_num = num; + relayout(); + } +}