diff 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
line wrap: on
line diff
--- a/client/digitallibrary/jquery/jquery.digilib.js	Wed Jan 26 15:37:39 2011 +0100
+++ b/client/digitallibrary/jquery/jquery.digilib.js	Wed Jan 26 18:37:03 2011 +0100
@@ -6,9 +6,28 @@
 // fallback for console.log calls
 if (typeof(console) === 'undefined') {
     var console = {
-            log : function(){},
-            debug : function(){},
-            error : function(){}
+        log : function(){
+            var $debug = $('#debug');
+            if (!$debug) return;
+            var args = Array.prototype.slice.call(arguments);
+            var argstr = args.join(' ');
+            $debug.append('<div class="_log">' + argstr + '</div>');
+            },
+        debug : function(){
+            // debug for MSIE etc
+            var $debug = $('#debug');
+            if (!$debug) return;
+            var args = Array.prototype.slice.call(arguments);
+            var argstr = args.join(' ');
+            $debug.append('<div class="_debug">' + argstr + '</div>');
+            },
+        error : function(){
+            var $debug = $('#debug');
+            if (!$debug) return;
+            var args = Array.prototype.slice.call(arguments);
+            var argstr = args.join(' ');
+            $debug.append('<div class="_error">' + argstr + '</div>');
+            }
     };
 }
 
@@ -634,32 +653,34 @@
     var setupScalerDiv = function (data) {
         var settings = data.settings;
         var $elem = data.$elem;
-        var $img;
+        var $img, scalerUrl;
+        // fullscreen
         if (settings.interactionMode === 'fullscreen') {
-            // fullscreen
             var imgSize = getFullscreenImgSize($elem);
             // fitwidth/height omits destination height/width
             if (data.dlOpts['fitheight'] == null) {
                 settings.dw = imgSize.width;
-            }
+            };
             if (data.dlOpts['fitwidth'] == null) {
                 settings.dh = imgSize.height;
-            }
+            };
             $img = $('<img/>');
-            var scalerUrl = getScalerUrl(data);
-            $img.attr('src', scalerUrl);
+            scalerUrl = getScalerUrl(data);
+        // embedded mode -- try to keep img tag
         } else {
-            // embedded mode -- try to keep img tag
             $img = $elem.find('img');
             if ($img.length > 0) {
-                console.debug("img detach:",$img);
+                console.debug("img detach:", $img);
+                scalerUrl = $img.attr('src');
                 $img.detach();
             } else {
                 $img = $('<img/>');
-                var scalerUrl = getScalerUrl(data);
-                $img.attr('src', scalerUrl);
-            }
+                scalerUrl = getScalerUrl(data);
+            };
         }
+        // setup image load handler before setting the src attribute (IE bug)
+        $img.load(scalerImgLoadedHandler(data));
+        $img.attr('src', scalerUrl);
         // create new html
         $elem.empty(); // TODO: should we keep stuff for customization?
         var $scaler = $('<div class="scaler"/>');
@@ -668,7 +689,6 @@
         $img.addClass('pic');
         data.$scaler = $scaler;
         data.$img = $img;
-        $img.load(scalerImgLoadedHandler(data));
     };
 
     // creates HTML structure for buttons in elem
@@ -845,6 +865,7 @@
             // create Transform from current area and picsize
             data.imgTrafo = getImgTrafo($img, data.zoomArea,
                     data.settings.rot, data.scalerFlags.hmir, data.scalerFlags.vmir);
+            console.debug("imgTrafo=", data.imgTrafo);
             // display marks
             renderMarks(data);
             //digilib.showArrows(); // show arrow overlays for zoom navigation