사용중인 Windows XP 테마를 감지하는 방법이 있습니까?javascript : XP 또는 Classic windows 테마가 활성화되어 있는지 확인하십시오.
내가 할 수있는 특정 API 호출이 없다고 생각되지만 일부 DOM 요소 (예 : 기능 감지)에서 내용을 확인하여 문제를 파악할 수 있습니다.
또 다른 질문 : 고전적인 테마는 Windows Vista 또는 Windows 7에도 있습니까?
function isXpTheme() {
var rgb;
var map = { "rgb(212,208,200)" : false,
"rgb(236,233,216)" : true };
var $elem = $("<button>");
$elem.css("backgroundColor", "ButtonFace");
$("body").append($elem);
var elem = $elem.get(0);
if (document.defaultView && document.defaultView.getComputedStyle) {
s = document.defaultView.getComputedStyle(elem, "");
rgb = s && s.getPropertyValue("background-color");
} else if (elem.currentStyle) {
rgb = (function (el) { // get a rgb based color on IE
var oRG =document.body.createTextRange();
oRG.moveToElementText(el);
var iClr=oRG.queryCommandValue("BackColor");
return "rgb("+(iClr & 0xFF)+","+((iClr & 0xFF00)>>8)+","+
((iClr & 0xFF0000)>>16)+")";
})(elem);
} else if (elem.style["backgroundColor"]) {
rgb = elem.style["backgroundColor"];
} else {
rgb = null;
}
$elem.remove();
rgb = rgb.replace(/[ ]+/g,"")
if(rgb){;
return map[rgb];
}
}
다음 단계는이 기능이 XP가 아닌 시스템에 반환 및/또는 창 상자를 감지하는 방법을 알아낼 무엇인지 파악하는 것입니다 : -
편집이 내 솔루션입니다. 나는 비스타와 윈도우 7이 다른 색상 값을 줄 수 있기 때문에 윈도우 XP에서만 이것을 테스트했다.하지만 그것은 쉽게 추가 할 수 있어야한다. 여기
행동이의 데모 페이지입니다 :http://programmingdrunk.com/current-projects/isXpTheme/
예, 클래식 테마는 최신 Windows 버전에 계속 존재합니다. 사용중인 테마가 웹 페이지에서 알 수있는 것이기는하지만 심하게 의심합니다. 방법이 있다면 Windows XP처럼 보이는 팝업 광고가 몇 년 전에 올바른 스타일을 사용했을 것입니다. – Joey
좋은 물건들 mkoryak! VM에서 Win XP 서비스 팩 3에 대한 테스트 결과 : Firefox 3.5는 둘 다 올바르게 감지합니다. IE6도 아무 것도 말할 수 없다. (그러나 나는 그것이 예상 된 것이라고 생각한다.) –
@Pekka : 실제로 IE6가 작동하지 않게 만든 것은 내 바보 같은 감독이었다. 나는 그것을 고쳐 지금은 IE6 작품 =) – mkoryak