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