IE6/7 setattribute 설정 스타일 지원하지 않음/getattribute 설정 스타일 속성 값 가져오기 지원하지 않음
3654 단어 attribute
IE6/7에서는 setattribute를 통해 요소의 스타일 속성을 설정할 수 없고 getattribute를 통해 요소의 스타일 속성 값을 가져올 수 없습니다.이것은 스타일 대상을 가져옵니다.
아래와 같다
<div style="color:blue">div test</div>
<script type="text/javascript">
var div1 = document.getElementsByTagName('div')[0];
// style
var val = div1.getAttribute('style');
alert(val);
</script>
IE8/9/Firefox/SAfari/Chrome/Opera: "color:blue"팝업
IE6/7: style 객체인 [object]입니다.
또한
<div style="color:blue">div test</div>
<script type="text/javascript">
var div1 = document.getElementsByTagName('div')[0];
// style
div1.setAttribute('style', 'color:red');
</script>
IE8/9/Firefox/SAfari/Chrome/Opera: div 텍스트 색상은 빨간색
IE6/7: 변경되지 않은 파란색
이를 감안하여 방법 setattr/getattr는 스타일에 대한 처리를 다음과 같이 늘려야 한다.
/**
*
* DOM util
* Version: 0.1
* Author: snandy
* Blog: http://snandy.cnblogs.com
*
* 1, name
* 2, IE6/7 class, for
* 3, IE6/7 style cssText
*
*/
dom = (function() {
var fixAttr = {
tabindex: 'tabIndex',
readonly: 'readOnly',
'for': 'htmlFor',
'class': 'className',
maxlength: 'maxLength',
cellspacing: 'cellSpacing',
cellpadding: 'cellPadding',
rowspan: 'rowSpan',
colspan: 'colSpan',
usemap: 'useMap',
valign: 'vAlign',
frameborder: 'frameBorder',
contenteditable: 'contentEditable'
},
p,
div = document.createElement( 'div' );
div.innerHTML = '<p style="color:red;"></p>';
div.setAttribute('class', 't');
p = div.getElementsByTagName('p')[0];
var
// http://www.cnblogs.com/snandy/archive/2011/08/27/2155300.html
setAttr = div.className === 't',
// http://www.cnblogs.com/snandy/archive/2011/03/11/1980545.html
cssText = /;/.test(p.style.cssText);
var special = {
style : {
get: function( el ) {
var txt = el.style.cssText;
if(txt) {
txt = cssText ? txt : txt + ';';
return txt.toLowerCase();
}
},
set: function( el, value ) {
return (el.style.cssText = '' + value);
}
}
};
return {
support : {
setAttr : setAttr,
cssText : cssText
},
setAttr : function(el, name, val) {
if(setAttr) {
el.setAttribute(name, val);
return val;
}else {
if(special[name]) {
return special[name].set(el, val);
}else {
el.setAttribute(fixAttr[name] || name, val);
return val;
}
}
},
getAttr : function(el, name) {
if(setAttr) {
return el.getAttribute(name);
}else {
if(special[name]) {
return special[name].get(el);
}else {
return el.getAttribute(fixAttr[name] || name);
}
}
}
}
})();
이 내용에 흥미가 있습니까?
현재 기사가 여러분의 문제를 해결하지 못하는 경우 AI 엔진은 머신러닝 분석(스마트 모델이 방금 만들어져 부정확한 경우가 있을 수 있음)을 통해 가장 유사한 기사를 추천합니다:
<img/> HTML 태그에서 어떤 ATTRIBUTES를 사용해야 하는 경우HTML 이미지 요소( )는 문서에 이미지를 삽입하는 데 사용됩니다. 대체 || 이 속성은 이미지에 대한 간단한 설명을 추가하는 데 사용됩니다. src || 이 속성은 이미지의 URL을 추가하는 데 사용됩니다. HT...
텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
CC BY-SA 2.5, CC BY-SA 3.0 및 CC BY-SA 4.0에 따라 라이센스가 부여됩니다.