123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687 |
- <public:component>
- <public:attach event="onpropertychange" onevent="propertyChanged()" />
- <public:attach event="onbeforeprint" for="window" onevent="beforePrint()" />
- <public:attach event="onafterprint" for="window" onevent="afterPrint()" />
- <script>
- /*
- * PNG Behavior
- *
- * This script was created by Erik Arvidsson (erik(at)eae.net)
- * for WebFX (http://webfx.eae.net)
- * Copyright 2002
- *
- * For usage see license at http://webfx.eae.net/license.html
- *
- * Version: 1.01a
- * Created: 2001-??-?? First working version
- * Updated: 2002-03-28 Fixed issue when starting with a non png image and
- * switching between non png images
- * 2003-01-06 Fixed RegExp to correctly work with IE 5.0x
- * 2004-04-25 Fixed PNG image printing, eliminated need for external
- * GIF file, fixed intermittent uninitialised variable
- * error [by AG, <http://www.scss.com.au/family/andrew/> ]
- * 2004-09-30 Reverted inline javascript image to transparent GIF. The
- * new XP SP2 'security' measures prevented the JS image
- * from working. [by AG]
- * 2004-10-22 Rewrote fixImage() to try and work around some reported
- * problems with PNGs vanishing! [by AG]
- * 2004-12-12 Fixed problem with PNGs not being restored after
- * printing. I have no idea how I missed this one! [by AG]
- * 2005-03-26 Fixed supported RE mis-identifying IE 5.0/Win98 as
- * 'supported'.
- *
- */
-
- var IS_PNG = /\.png$/i;
- var supported = /MSIE (5\.[5-9]|[6]\.[0-9]*)/.test(navigator.userAgent) && navigator.platform == 'Win32';
- var realSrc;
- var blankSrc = '/images/blank.png';
- if (supported) fixImage();
- function propertyChanged() {
- if (supported && event.propertyName == 'src') {
- var i = element.src.lastIndexOf(blankSrc);
- if (i == -1 || i != element.src.length - blankSrc.length) {
- fixImage();
- }
- }
- }
- function fixImage() {
- if (realSrc && element.src == realSrc) {
- // this is an attempt to set the image to itself!
- // pointless - leave the filter as-is, restore the blank image
- element.src = blankSrc;
- } else {
- // set the image to something different
- if (IS_PNG.test(element.src)) {
- // fixable PNG
- realSrc = element.src;
- element.src = blankSrc;
- element.runtimeStyle.filter = "progid:DXImageTransform.Microsoft.AlphaImageLoader(src='" + realSrc + "',sizingMethod='scale')";
- } else {
- // ordinary image - make sure the fix is removed
- if (realSrc) {
- realSrc = null;
- element.runtimeStyle.filter = '';
- }
- }
- }
- }
- function beforePrint() {
- if (realSrc) {
- supported = false;
- element.src = realSrc;
- element.runtimeStyle.filter = '';
- supported = true;
- }
- }
- function afterPrint() {
- if (realSrc) {
- var rs = realSrc;
- realSrc = null;
- element.src = rs;
- }
- }
- </script>
- </public:component>
|