1

我想替换 SVG 标签的图像元素。我希望每次调用一个在controller.js 中保存图像的对象,我将获取这个图像并通过SVG 在名为default.js 的不同文件中将此图像表示为模糊背景图像。

我该怎么做?

默认.html:

<div id="backgroundImage">
        <svg xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink">
            <defs>
                <filter id="myGaussianBlur" x="0" y="0">
                    <feGaussianBlur in="SourceGraphic" stdDeviation="2"></feGaussianBlur>
                </filter>
            </defs>
            <image id="backImage" xlink:href="surf.jpg" width="100%" height="100%" preserveAspectRatio="none" filter="url(#myGaussianBlur)" />
        </svg>
    </div>  

我想替换image id ="backImage"其他图像中的图像。

控制器.js:

function setObject(element, value) {
    var id = value.id;
    var image = value.image;
    ????
}
4

1 回答 1

1

尝试使用本机“setAttribute”。

var im = document.getElementById('backImage');
im.setAttribute('xlink:href',"http://sphotos-b.ak.fbcdn.net/hphotos-ak-ash3/s480x480/525959_10151097048652029_155651648_n.jpg");
// or mby more correct approach:
//    im.setAttributeNS("http://www.w3.org/1999/xlink", "xlink:href", "http://sphotos-b.ak.fbcdn.net/hphotos-ak-ash3/s480x480/525959_10151097048652029_155651648_n.jpg");
im.setAttribute('width', X);
im.setAttribute('height', Y);

它适用于 chrome,我所知道的 =)

于 2012-10-07T10:07:17.460 回答