3

저는 사용자 정의 컨트롤이 아닌 사용자 정의 컨트롤을 개발했으며 일부 jQuery 스크립팅을 사용합니다.클라이언트 스크립트 리소스가 페이지에 등록되어 있는지 확인하는 방법은 무엇입니까?

내가 국회로 포함 리소스로 컨트롤의 스크립트를 포함하고는이처럼 OnPreRender 이벤트에서 페이지에 등록

:

protected override void OnPreRender(EventArgs e) 
{ 
    string controlScript = "Namespace.MyScript.js"; 
    ClientScriptManager csm = this.Page.ClientScript; 
    csm.RegisterClientScriptResource(typeof(ResourceFinder), controlScript); 
    base.OnPreRender(e); 
} 

이 컨트롤 작동

JQuery와와 프로젝트에 배치 라이브러리가 이미 있지만 jQuery 라이브러리를 사용할 수없는 경우에는 어떻게됩니까? 라이브러리가 이미 프로젝트에 있는지 확인하고 그렇지 않은 경우 어셈블리에서 어셈블리를 포함하고 거기에서 가져옵니다. 내가 좋아하는 뭔가 생각 : 나는 어쨌든 어셈블리의 jQuery 라이브러리를 포함 할 수 있습니다 알고

protected override void OnPreRender(EventArgs e) 
{ 
    ClientScriptManager csm = this.Page.ClientScript; 

    // Here I would need to check if jQuery is already registered 
    // but there is no such method like: IsClientScriptResourceRegistered 
    if (csm.IsClientScriptResourceRegistered("jQuery")) 
    { 
     string jQueryLib = "Namespace.jquery-1.7.2.min.js"; 
     csm.RegisterClientScriptResource(typeof(ResourceFinder), jQueryLib); 
    } 

    string controlScript = "Namespace.MyScript.js"; 
    csm.RegisterClientScriptResource(typeof(ResourceFinder), controlScript); 
    base.OnPreRender(e); 
} 

를하지만, jQuery를이 프로젝트에 이미이라면 나는이 같은 libray를 두 번 호출,있는 페이지로 끝날 것 :

<!-- Project's jQuery lib --> 
<script type="text/javascript" src="/scripts/jquery-1.7.2.min.js"></script> 
<!-- DLL's duplicated jQuery lib: --> 
<script type="text/javascript" src="/WebResource.axd?d=AP7y...r0bHQl"></script> 
<!-- DLL Control's MyScript.js --> 
<script type="text/javascript" src="/WebResource.axd?d=uTGR...ur15b"></script> 

... 내가 피하려고하는 것입니다.

아이디어가 있으십니까?

+0

내가 그 생각을 아마 대신 직접 내가 [이 다른 질문]에 명시된 바와 같이 첫째 JQuery와 가능 여부를 확인하는 스크립트 블록 (http://stackoverflow.com/questions/1014203을 등록 할 수있는 jQuery 라이브러리를 등록했다/best-way-to-use-googles-hosted-jquery-but-fall-back-to-my-hosted-library-on-go)을 사용하는 것이 좋습니다. –

답변

1

단락 회로 연산자를 사용하여 jQuery 객체를 테스트하는 스크립트 태그를 삽입하십시오. jQuery를 사용할 수없는 경우 사용할 수 있도록 설정하십시오.

<script>window.jQuery || document.write('<script src="js/libs/jquery-1.7.1.min.js"><\/script>')</script> 
관련 문제