2011-09-09 9 views
1

나는 다음과 같은 코드를 얻을 수 있기를 원한다.
ID 선택기를 사용하여 동적 스타일 시트를 만들려면 어떻게해야합니까?

var head = document.getElementsByTagName("head")[0]; 
var style = document.createElement("style"); 

style.type = "text/css"; 
style.media = "print"; 
style.styleSheet.cssText = "#menu {display:none;}"; 
head.appendChild(style); 
window.print(); 

문제는 그것이 다음 스타일로 끝나는 것이다.
UNKNOWN {display : none;}

' 또한 동일한 결과를 가진 addRule을 사용하여 시도했지만 실제로 "잘못된 인수"로 오류가 발생하고 아무것도 설정되지 않았습니다.

내가 달성하기 위해 노력하고있어 동적으로 주어진 페이지 내의 일부 요소를 숨기려면 인쇄하지, 이러한 요소는 다른 태그, 형식 및 클래스를 사용하므로 그들을 제외시킬 수있는 일반적인 방법은 없습니다 (최소한 생각할 수있는) ID 선택기를 사용하지 않고.

이것은 IE7을 사용하는 인트라넷의 비즈니스 응용 프로그램을위한 것입니다.

현재 유일한 해결 방법은 ASP에이 정보를 보내서 스타일 시트로 다시 돌려 보내서 href 스타일 시트로 사용할 수 있기 때문에 ID 선택기를 사용하여 스타일 시트를 동적으로 만들 수 있다고 생각할 수 있습니다.

미리 감사드립니다.

답변

0

보십시오 : 당신은 그냥 .innerHTML를 사용하는 경우 나를 위해

var head = document.getElementsByTagName("head")[0]; 
var style = document.createElement("style"); 
style.type = "text/css"; 
style.media = "print"; 
style.text = "#menu {display:none;}"; 
head.appendChild(style); 
0

, 그것은 작동합니다. 나는 Chrome에 있지만 인터넷 탐색기에있는 것처럼 보입니다. 그럼에도 .innerHTML을 사용하면 콘텐츠를 간단히 설정할 수 있습니다 (예 : <style></style>).

var head = document.getElementsByTagName("head")[0]; 
var style = document.createElement("style"); 

style.type = "text/css"; 
style.media = "print"; 
style.innerHTML = "#menu {display:none;}"; 
head.appendChild(style); 
window.print(); 
관련 문제