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) {