函数setStyle(el,spec){
(spec中的var n){
el.style [n] = spec [n];
$ / code $ / pre
$ b $ p用法:
setStyle(button,{
cssFloat:'right',
border:'2px solid black'
});
注意: object.attribute ='value'
虽然所有浏览器中的作品可能并不总是适用于非HTML DOM对象。例如,如果您的文档包含需要使用JavaScript处理的嵌入式SVG图形,则需要使用 setAttribute
来完成它。
I'm porting a piece of JS code written for Firefox into Internet Explorer. I faced a problem of changing style of an element using setAttribute
method which was working on Firefox.
button.setAttribute('style', 'float: right;');
I tried setting the style member of button and it didn't work either. This was the solution in case of setting onclick
event handler.
button.style = 'float: right;';
First I wanna know the solution for the above problem and
Second are there any maintained lists for these differences between browsers ?
解决方案
Because style itself is an object. What you want is:
button.style.setAttribute('cssFloat','right');
But IE doesn't support setAttribute for style objects. So use the fully cross-browser supported:
button.style.cssFloat = 'right';
As for reference, I always go to www.quirksmode.org . Specifically: http://www.quirksmode.org/compatibility.html . Click on all the DOM related stuff.
And finally, to set multiple attributes I usually use something like:
function setStyle(el,spec) {
for (var n in spec) {
el.style[n] = spec[n];
}
}
usage:
setStyle(button,{
cssFloat : 'right',
border : '2px solid black'
});
Note: object.attribute = 'value'
although works in all browsers may not always work for non-HTML DOM objects. For example, if your document contains embedded SVG graphics that you need to manipulate with javascript you need to use setAttribute
to do it.
这篇关于在IE上,setAttribute不适用于'style'属性的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持!