2010-06-23 4 views
1

블로그 게시물을 통해 리피터에서 작업 중이며 맨 아래에 ShareThis JavaScript 조각을 표시하고 있습니다. 게시물의 제목과 URL이 JS로 전송됩니다. 하나의 테스트 케이스에서 게시물의 제목에는 작은 따옴표 (예 :ASP.NET 컨트롤을 큰 따옴표로 묶기

마크 테스트 후

내가하기 ShareThis로 전송되는 때 작은 따옴표를 보존 할 필요가 있기 때문에, 내가 큰 따옴표로 자바 스크립트 문자열, 그러나 문자열 리터럴 통해 결합되고 있음을 포장 필요 나는 큰 따옴표로 문자를 포장 할 수 없습니다

이 내가 원하는 싶어하지만 작동하지 않습니다

SHARETHIS.addEntry({ title: "<asp:Literal ID="ltlTitle" runat="server" />", etc.. 

난 단지 포장 할 수 있습니다

SHARETHIS.addEntry({ title: '<asp:Literal ID="ltlTitle" runat="server" />', etc.. 

하지만 그건 나쁜 프런트 엔드 코드가 발생합니다 : 그래서 같은 작은 따옴표 리터럴

SHARETHIS.addEntry({ title: 'Mark's test post', etc.. 

어떻게 따옴표로 컨트롤을 감싸 올바르게 또는 어떻게 든이 문제를 인코딩 할 수 있습니다? 나는 HttpUtility.HtmlEncodeServer.HtmlEncode을 알고 있지만 어떻게 도움이되는지는 알지 못합니다.

+0

무엇을 사용하는 방법에 대한 '<% % = blabla()>? – vittore

답변

0

내가 실제로 나는 결코 일하지 알고 ASP.NET 컨트롤 자체에 작은 따옴표를 사용할 수있는 것으로 나타났다. 나는 그 파서 오류라고 생각하는 데 사용하지만 내 페이지가로드 제대로

title: "<asp:Literal ID='ltlTitle' runat='server' />" 

내가 원하는 결과 그것은`대신

title: "Mark's test post" 
1

문자열을 서버 쪽에서 "javascript-encode"해야합니다. 아마도 이와 같은 것을 찾고있을 것입니다.

How do I escape a string inside JavaScript code inside an onClick handler?

+0

작은 따옴표로 내 C#에서 인코딩 된 값 '\ x27'을 바꾸려고했으나 여전히 잘못 렌더링됩니다. –

+0

작은 따옴표 만 걱정하기 때문에이 더러운 수정을 시도하십시오. lblTitle.Text = title.Replace (" '", "\\'"); 하지만 보안을 유지하려면 결국 자체 JavaScript 인코딩 기능을 만들어야합니다. – stun

관련 문제