welsonjs/app/assets/js/ie7-recalc.js
2020-07-03 18:15:23 +09:00

7 lines
1.9 KiB
JavaScript

/*
IE7/IE8/IE9.js - copyright 2004-2010, Dean Edwards
http://code.google.com/p/ie7-js/
http://www.opensource.org/licenses/mit-license.php
*/
;(function(){if(!IE7.loaded)return;var e=/\sie7_class\d+/g;IE7.CSS.extend({elements:{},handlers:[],reset:function(){this.removeEventHandlers();var b=this.elements;for(var a in b)b[a].runtimeStyle.cssText="";this.elements={};var b=IE7.Rule.elements;for(var a in b){with(b[a])className=className.replace(e,"")}IE7.Rule.elements={}},reload:function(){this.rules=[];this.getInlineStyles();this.screen.load();if(this.print)this.print.load();this.refresh();this.trash()},addRecalc:function(f,d,c,b){this.base(f,d,function(a){c(a);IE7.CSS.elements[a.uniqueID]=a},b)},recalc:function(){this.reset();this.base()},addEventHandler:function(c,b,a){c.attachEvent(b,a);this.handlers.push(arguments)},removeEventHandlers:function(){var a;while(a=this.handlers.pop()){a[0].detachEvent(a[1],a[2])}},getInlineStyles:function(){var d=document.getElementsByTagName("style"),c;for(var b=d.length-1;(c=d[b]);b--){if(!c.disabled&&!c.ie7){var a=c.cssText||c.innerHTML;this.styles.push(a);c.cssText=a}}},trash:function(){var c=document.styleSheets,b,a;for(a=0;a<c.length;a++){b=c[a];if(!b.ie7&&!b.cssText){b.cssText=b.cssText}}this.base()},getText:function(a){return a.cssText||this.base(a)}});IE7.CSS.addEventHandler(window,"onunload",function(){IE7.CSS.removeEventHandlers()});IE7.Rule.elements={};IE7.Rule.prototype.extend({add:function(a){this.base(a);IE7.Rule.elements[a.uniqueID]=a}});if(IE7.PseudoElement){IE7.PseudoElement.hash={};IE7.PseudoElement.prototype.extend({create:function(b){var a=this.selector+":"+b.uniqueID;if(!IE7.PseudoElement.hash[a]){IE7.PseudoElement.hash[a]=true;this.base(b)}}})}IE7.HTML.extend({elements:{},addRecalc:function(c,b){this.base(c,function(a){if(!this.elements[a.uniqueID]){b(a);this.elements[a.uniqueID]=a}})}});document.recalc=function(a){if(IE7.CSS.screen){if(a)IE7.CSS.reload();IE7.recalc()}}})();