77 lines
2.4 KiB
Plaintext
77 lines
2.4 KiB
Plaintext
<public:component>
|
|
<public:attach event="onpropertychange" onevent="propertyChanged()" />
|
|
<script>
|
|
|
|
var supported = /MSIE (5\.5)|[6789]/.test(navigator.userAgent) && navigator.platform == "Win32";
|
|
var realSrc;
|
|
var blankSrc = "i/_.gif";
|
|
|
|
if (supported) fixImage();
|
|
|
|
function propertyChanged() {
|
|
if (!supported) 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) {
|
|
element.src = blankSrc;
|
|
return;
|
|
}
|
|
|
|
if ( ! new RegExp(blankSrc).test(src)) {
|
|
// backup old src
|
|
realSrc = src;
|
|
// test for png
|
|
if ( /\.png$/.test( realSrc.toLowerCase() ) ) {
|
|
// 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 correctPNG()
|
|
{
|
|
for(var i=0; i<document.images.length; i++)
|
|
{
|
|
var img = document.images[i]
|
|
var imgName = img.src.toUpperCase()
|
|
if (imgName.substring(imgName.length-3, imgName.length) == "PNG")
|
|
{
|
|
var imgID = (img.id) ? "id='" + img.id + "' " : ""
|
|
var imgClass = (img.className) ? "class='" + img.className + "' " : ""
|
|
var imgTitle = (img.title) ? "title='" + img.title + "' " : "title='" + img.alt + "' "
|
|
var imgStyle = "display:inline-block;" + img.style.cssText
|
|
if (img.align == "left") imgStyle = "float:left;" + imgStyle
|
|
if (img.align == "right") imgStyle = "float:right;" + imgStyle
|
|
if (img.parentElement.href) imgStyle = "cursor:hand;" + imgStyle
|
|
var strNewHTML = "<span " + imgID + imgClass + imgTitle
|
|
+ " style=\"" + "width:" + img.width + "px; height:" + img.height + "px;" + imgStyle + ";"
|
|
+ "filter:progid:DXImageTransform.Microsoft.AlphaImageLoader"
|
|
+ "(src=\'" + img.src + "\', sizingMethod='scale');\"></span>"
|
|
img.outerHTML = strNewHTML
|
|
i = i-1
|
|
}
|
|
}
|
|
}
|
|
window.attachEvent("onload", correctPNG);
|
|
|
|
</script>
|
|
</public:component>
|