1 | <public:component> |
---|
2 | <public:attach event="onpropertychange" onevent="doFix()" /> |
---|
3 | |
---|
4 | <script> |
---|
5 | |
---|
6 | // IE5.5+ PNG Alpha Fix v1.0 by Angus Turnbull http://www.twinhelix.com |
---|
7 | // Free usage permitted as long as this notice remains intact. |
---|
8 | |
---|
9 | // This must be a path to a blank image. That's all the configuration you need here. |
---|
10 | var blankImg = 'ui/default/blank.gif'; |
---|
11 | |
---|
12 | var f = 'DXImageTransform.Microsoft.AlphaImageLoader'; |
---|
13 | |
---|
14 | function filt(s, m) { |
---|
15 | if (filters[f]) { |
---|
16 | filters[f].enabled = s ? true : false; |
---|
17 | if (s) with (filters[f]) { src = s; sizingMethod = m } |
---|
18 | } else if (s) style.filter = 'progid:'+f+'(src="'+s+'",sizingMethod="'+m+'")'; |
---|
19 | } |
---|
20 | |
---|
21 | function doFix() { |
---|
22 | if ((parseFloat(navigator.userAgent.match(/MSIE (\S+)/)[1]) < 5.5) || |
---|
23 | (event && !/(background|src)/.test(event.propertyName))) return; |
---|
24 | |
---|
25 | if (tagName == 'IMG') { |
---|
26 | if ((/\.png$/i).test(src)) { |
---|
27 | filt(src, 'image'); // was 'scale' |
---|
28 | src = blankImg; |
---|
29 | } else if (src.indexOf(blankImg) < 0) filt(); |
---|
30 | } else if (style.backgroundImage) { |
---|
31 | if (style.backgroundImage.match(/^url[("']+(.*\.png)[)"']+$/i)) { |
---|
32 | var s = RegExp.$1; |
---|
33 | style.backgroundImage = ''; |
---|
34 | filt(s, 'crop'); |
---|
35 | } else filt(); |
---|
36 | } |
---|
37 | } |
---|
38 | |
---|
39 | doFix(); |
---|
40 | |
---|
41 | </script> |
---|
42 | </public:component> |
---|