2011-12-27 7 views
-1

이 코드는 내 Sharepoint 프로젝트의 C#에서 작성합니다. 잘 작동한다.C#의 자바 스크립트 문제

ClientScript.RegisterStartupScript(this.GetType(), "ale", "window.open('DownloadHandler.ashx?fileName=Error.log');", true); 

그러나이 코드를 변경하면 더 이상 작동하지 않습니다.

ClientScript.RegisterStartupScript(this.GetType(), "ale", string.Format("window.open('DownloadHandler.ashx?fileName={0}')", "Error.log"), true); 

코딩에 어떤 문제가 있습니까?

+2

"더 이상 작동하지 않습니다."를 정의 하시겠습니까? –

+4

잘 모르겠다.'window.open()'문장의 끝에'; '이 없다? –

+1

@kevin javascript의 끝에서 누락 된 세미콜론 ?? – Nalaka526

답변

2

window.open() 문장의 끝에 누락 된 ;을있다 :

ClientScript.RegisterStartupScript(
    this.GetType(), 
    "ale", 
    string.Format("window.open('DownloadHandler.ashx?fileName={0}');", "Error.log"), 
    true 
); 
+0

나는이 세미콜론이 부족하면 [Javascript에 자동 세미콜론 삽입이 있기 때문에] 왜 멈추는 지 궁금하다. (http : // mislav .uniqpath.com/2010/05/세미콜론 /). –

+0

@PeterOlson - 나는 똑같은 것을 생각하고 있었기 때문에 확신하지 못했다. (Javascript의 사소한 오류). 어쩌면 IE가 오류를 throw하고 명령문이 종료되지 않은 경우 실행을 멈출 수 있습니까? 나는 똑같은 것을 궁금해하고있다. 예제 코드에서 본 유일한 문제였습니다. –

+0

스크립트 등록자는 함께 추가 된 다른 스크립트를 가지고있어 스크립트를 잘못 렌더링 할 수 있습니다. 이 스크립트 문자열은 자바 스크립트에 의해 실행되기 전에 .net에 의해 처리됩니다. –

1

는 그래서 마지막에 세미콜론 ;를 실종.

ClientScript.RegisterStartupScript(this.GetType(), "ale", string.Format("window.open('DownloadHandler.ashx?fileName={0}');", "Error.log"), true);