cfranke: pngbehavior.htc für hintergründe

Beitrag lesen

hi,

da ie6 und älter transparente png's nicht unterstützt, gibt es ja schon seit längerem die nette datei pngbehavior.htc, die man mit css includen kann.
ich habe jetzt allerdings ein png-bild als tabellen-hintergrund eingebaut. damit funktionniert das script allerdings nicht. ich habe bereits versucht, alle 'src'-tags in der pnghbehavior.htc mit 'background' zu ersetzen, da ich ja statt src="bla.png", background="bla.png" verwende. allerdings funktionniert das nicht.

hier ist die datei pngbehavior.htc, die ich gerade benutze:

<public:component lightWeight="true">
<public:attach event="onpropertychange" onevent="propertyChanged()" />
<public:attach event="onbeforeprint" onevent="beforePrint()" for="window"/>
<public:attach event="onafterprint" onevent="afterPrint()" for="window"/>
<script>

/*
 * PNG Behavior
 *
 * This script was created by Erik Arvidsson (http://webfx.eae.net/contact.html#erik)
 * for WebFX (http://webfx.eae.net)
 * Copyright 2002-2004
 *
 * For usage see license at http://webfx.eae.net/license.html
 *
 * Version: 1.02
 * 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-05-09  When printing revert to original
 *
 */

var supported = /MSIE ((5.5)|[6789])/.test(navigator.userAgent) &&
    navigator.platform == "Win32";

var realSrc;
var blankSrc = "gfx/blank.gif";
var isPrinting = false;

if (supported) fixImage();

function propertyChanged() {
 if (!supported || isPrinting) return;

var pName = event.propertyName;
 if (pName != "src") return;
 // if not set to blank
 if (!new RegExp(blankSrc).test(src))
  fixImage();
};

function fixImage() {
 // get src
 var src = element.src;

// check for real change
 if (src == realSrc && /.png$/i.test(src)) {
  element.src = blankSrc;
  return;
 }

if ( ! new RegExp(blankSrc).test(src)) {
  // backup old src
  realSrc = src;
 }

// test for png
 if (/.png$/i.test(realSrc)) {
  // set blank image
  element.src = blankSrc;
  // set filter
  element.runtimeStyle.filter = "progid:DXImageTransform.Microsoft." +
     "AlphaImageLoader(src='" + src + "',sizingMethod='scale')";
 }
 else {
  // remove filter
  element.runtimeStyle.filter = "";
 }
}

function beforePrint() {
 isPrinting = true;
 element.src = realSrc;
 element.runtimeStyle.filter = "";
 realSrc = null;
}

function afterPrint() {
 isPrinting = false;
 fixImage();
}

</script>
</public:component>

lg
cfranke