Mercurial > hg > digilib-old
comparison client/digitallibrary/jquery/jquery.digilib.js @ 686:86c4174977f1 jquery
trying to work around IE bugs, debugging for IE
author | hertzhaft |
---|---|
date | Wed, 26 Jan 2011 18:37:03 +0100 |
parents | 96a0395d6fb9 |
children | 97c01b911754 |
comparison
equal
deleted
inserted
replaced
685:6ec8c8ae02c7 | 686:86c4174977f1 |
---|---|
4 */ | 4 */ |
5 | 5 |
6 // fallback for console.log calls | 6 // fallback for console.log calls |
7 if (typeof(console) === 'undefined') { | 7 if (typeof(console) === 'undefined') { |
8 var console = { | 8 var console = { |
9 log : function(){}, | 9 log : function(){ |
10 debug : function(){}, | 10 var $debug = $('#debug'); |
11 error : function(){} | 11 if (!$debug) return; |
12 var args = Array.prototype.slice.call(arguments); | |
13 var argstr = args.join(' '); | |
14 $debug.append('<div class="_log">' + argstr + '</div>'); | |
15 }, | |
16 debug : function(){ | |
17 // debug for MSIE etc | |
18 var $debug = $('#debug'); | |
19 if (!$debug) return; | |
20 var args = Array.prototype.slice.call(arguments); | |
21 var argstr = args.join(' '); | |
22 $debug.append('<div class="_debug">' + argstr + '</div>'); | |
23 }, | |
24 error : function(){ | |
25 var $debug = $('#debug'); | |
26 if (!$debug) return; | |
27 var args = Array.prototype.slice.call(arguments); | |
28 var argstr = args.join(' '); | |
29 $debug.append('<div class="_error">' + argstr + '</div>'); | |
30 } | |
12 }; | 31 }; |
13 } | 32 } |
14 | 33 |
15 (function($) { | 34 (function($) { |
16 var buttons = { | 35 var buttons = { |
632 | 651 |
633 // creates HTML structure for digilib in elem | 652 // creates HTML structure for digilib in elem |
634 var setupScalerDiv = function (data) { | 653 var setupScalerDiv = function (data) { |
635 var settings = data.settings; | 654 var settings = data.settings; |
636 var $elem = data.$elem; | 655 var $elem = data.$elem; |
637 var $img; | 656 var $img, scalerUrl; |
657 // fullscreen | |
638 if (settings.interactionMode === 'fullscreen') { | 658 if (settings.interactionMode === 'fullscreen') { |
639 // fullscreen | |
640 var imgSize = getFullscreenImgSize($elem); | 659 var imgSize = getFullscreenImgSize($elem); |
641 // fitwidth/height omits destination height/width | 660 // fitwidth/height omits destination height/width |
642 if (data.dlOpts['fitheight'] == null) { | 661 if (data.dlOpts['fitheight'] == null) { |
643 settings.dw = imgSize.width; | 662 settings.dw = imgSize.width; |
644 } | 663 }; |
645 if (data.dlOpts['fitwidth'] == null) { | 664 if (data.dlOpts['fitwidth'] == null) { |
646 settings.dh = imgSize.height; | 665 settings.dh = imgSize.height; |
647 } | 666 }; |
648 $img = $('<img/>'); | 667 $img = $('<img/>'); |
649 var scalerUrl = getScalerUrl(data); | 668 scalerUrl = getScalerUrl(data); |
650 $img.attr('src', scalerUrl); | 669 // embedded mode -- try to keep img tag |
651 } else { | 670 } else { |
652 // embedded mode -- try to keep img tag | |
653 $img = $elem.find('img'); | 671 $img = $elem.find('img'); |
654 if ($img.length > 0) { | 672 if ($img.length > 0) { |
655 console.debug("img detach:",$img); | 673 console.debug("img detach:", $img); |
674 scalerUrl = $img.attr('src'); | |
656 $img.detach(); | 675 $img.detach(); |
657 } else { | 676 } else { |
658 $img = $('<img/>'); | 677 $img = $('<img/>'); |
659 var scalerUrl = getScalerUrl(data); | 678 scalerUrl = getScalerUrl(data); |
660 $img.attr('src', scalerUrl); | 679 }; |
661 } | 680 } |
662 } | 681 // setup image load handler before setting the src attribute (IE bug) |
682 $img.load(scalerImgLoadedHandler(data)); | |
683 $img.attr('src', scalerUrl); | |
663 // create new html | 684 // create new html |
664 $elem.empty(); // TODO: should we keep stuff for customization? | 685 $elem.empty(); // TODO: should we keep stuff for customization? |
665 var $scaler = $('<div class="scaler"/>'); | 686 var $scaler = $('<div class="scaler"/>'); |
666 $elem.append($scaler); | 687 $elem.append($scaler); |
667 $scaler.append($img); | 688 $scaler.append($img); |
668 $img.addClass('pic'); | 689 $img.addClass('pic'); |
669 data.$scaler = $scaler; | 690 data.$scaler = $scaler; |
670 data.$img = $img; | 691 data.$img = $img; |
671 $img.load(scalerImgLoadedHandler(data)); | |
672 }; | 692 }; |
673 | 693 |
674 // creates HTML structure for buttons in elem | 694 // creates HTML structure for buttons in elem |
675 var setupButtons = function (data, buttonSetIdx) { | 695 var setupButtons = function (data, buttonSetIdx) { |
676 var $elem = data.$elem; | 696 var $elem = data.$elem; |
843 return function () { | 863 return function () { |
844 console.debug("img loaded! this=", this, " data=", data); | 864 console.debug("img loaded! this=", this, " data=", data); |
845 // create Transform from current area and picsize | 865 // create Transform from current area and picsize |
846 data.imgTrafo = getImgTrafo($img, data.zoomArea, | 866 data.imgTrafo = getImgTrafo($img, data.zoomArea, |
847 data.settings.rot, data.scalerFlags.hmir, data.scalerFlags.vmir); | 867 data.settings.rot, data.scalerFlags.hmir, data.scalerFlags.vmir); |
868 console.debug("imgTrafo=", data.imgTrafo); | |
848 // display marks | 869 // display marks |
849 renderMarks(data); | 870 renderMarks(data); |
850 //digilib.showArrows(); // show arrow overlays for zoom navigation | 871 //digilib.showArrows(); // show arrow overlays for zoom navigation |
851 var $birdImg = data.$birdImg; | 872 var $birdImg = data.$birdImg; |
852 if ($birdImg) { | 873 if ($birdImg) { |