2012-06-29 6 views
1

user-agent (mobile, ie, chrome-ff)에 따라 스타일과 스크립트를 나누고 싶습니다. include 나 not를 어떻게 제어하고 허용 할 수 있습니까?어떻게 asp.net에서 스크립트와 스타일을 나눌 수 있습니까?

어쩌면 제가 <을 사용할 수 있습니다! - [if IE]>, 다른 사람은 어떨까요? PLZ 나에게 조언을 누군가, 들으

<head runat="server" id="head"> 
    <%--Only mobile--%> 
     <link href="Styles/CommonMobile.css" rel="stylesheet" type="text/css"/> 
     <link href="Styles/SiteMobile.css" rel="stylesheet" type="text/css"/> 
     <script src="Scripts/CommonMobile.js" type="text/javascript"></script> 
     <script src="Scripts/SiteMobile.js" type="text/javascript"></script> 

    <%--All but IE --%> 
     <link href="Styles/GeneralView.css" rel="stylesheet" type="text/css" /> 
     <script src="Scripts/GeneralView.js" type="text/javascript"></script> 

    <%--Only IE --%> 
     <link href="Styles/IE.css" rel="stylesheet" type="text/css" /> 
     <script src="Scripts/IE.js" type="text/javascript"></script> 


    <%--Always--%> 
     <link href="Styles/Common.css" rel="stylesheet" type="text/css" /> 
     <script src="Scripts/Common.js" type="text/javascript"></script> 
</head> 
+1

'Request.Browser' 클래스를 사용해 보셨습니까? – Kane

답변

2

좋은 방법은 리터럴로 워프 뒤에 코드를 열거 나하지 않는 것입니다. Literal은 헤더 내부에서 실행될 수있는 몇 가지 컨트롤 중 하나이며 추가 코드를 남기지 않기 때문에 말합니다.

그래서 나는 그런

protected void Page_Load(object sender, EventArgs e) 
{ 
    if (Request.Browser.Browser == "IE") 
    { 
     OnlyIE.Visible = true; 
    } 
} 

<asp:Literal runat="server" ID="OnlyIE" EnableViewState="false" Visible="false"> 
     <link href="Styles/IE.css" rel="stylesheet" type="text/css" /> 
     <script src="Scripts/IE.js" type="text/javascript"></script> 
</asp:Literal> 

는 [*] 시험 방법 및 작업을한다.

다른 방법으로는 Request.Browser.Browser을 다시 사용하고 css 및 javascript를 Literal 내에서 다시 렌더링하거나 Controls.Add를 사용하여 컨트롤을 만드는 것이 더 힘들지 만 그보다 훨씬 많은 코드가 있습니다.

1

자바 스크립트와 CSS를 서버 측 코드에서 등록 할 수도 있습니다. 이것은 당신이 브라우저를 감지

1

더 신뢰할 수있는 방법을 코딩 ..happy 도움이 될 것입니다 희망

string source = "mobile" // set your source over here i.e. mobile , IE , etc 

if (source == "mobile") 
{ 

    if (!Page.ClientScript.IsClientScriptIncludeRegistered(this.GetType(), "Common")) 
    { 
    Page.ClientScript.RegisterClientScriptInclude(this.GetType(), "Common", this.Page.ResolveClientUrl("~/Scripts/Common.js")); 
    } 
    if (!Page.ClientScript.IsClientScriptIncludeRegistered(this.GetType(), "Common")) 
    { 
    Page.ClientScript.RegisterClientScriptInclude(this.GetType(), "CommonCss", this.Page.ResolveClientUrl("~/Styles/Common.css")); 
    } 
} 

아래 같은

.

var browser="";  
var isOpera = !!(window.opera && window.opera.version); // Opera 8.0+ 
if(isOpera){ 
string="opera" 
} 
var isFirefox = testCSS('MozBoxSizing'); // FF 0.8+ 
if(isFirefox){ 
string="firefox" 
}    
var isSafari = Object.prototype.toString.call(window.HTMLElement).indexOf('Constructor') > 0; 
     // At least Safari 3+: "[object HTMLElementConstructor]" 
if(isSafari){ 
string="safari" 
} 
var isChrome = !isSafari && testCSS('WebkitTransform'); // Chrome 1+ 
if(isChrome){ 
string="chrome" 
} 
var isIE = /*@[email protected]*/false || testCSS('msTransform'); // At least IE6 
if(isIE){ 
string="IE" 
} 
if(browser==""){ 
browser="mobile"; 
} 

var ss = document.createElement("link"); 
ss.type = "text/css"; 
ss.rel = "stylesheet"; 
if(browser=="IE"){ 
ss.href = "Styles/"+browser+".css"; 
} 
else{ 
ss.href = "Styles/GeneralView.css"; 
} 
if(browser=="mobile"){ 
ss.href = ss.href = "Styles/GeneralView.css"; 
var ss2 = document.createElement("link"); 
ss2.type = "text/css"; 
ss2.rel = "stylesheet"; 
ss2.href = var ss = document.createElement("link"); 
ss.type = "text/css"; 
ss.rel = "stylesheet"; 
ss.href = "style.css"; 
document.getElementsByTagName("head")[0].appendChild(ss); 
} 
document.getElementsByTagName("head")[0].appendChild(ss2); 

    } 
Similarly with javascript files. 
관련 문제