2014-03-31 4 views
1

함수에 대한 onclick 호출을 포함하는 js로 내용을 삽입하고 있습니다. 이 함수는 '을 포함 할 수있는 데이터베이스 항목을 포함하는 매개 변수를 전달합니다.Javascript 매개 변수가 단일 어포 스트로피를 전달합니다.

var action = '<a href="#" class="facebook-share" onclick="facebookWallPost(\' '+name+'\')">Share</a>'; 

문제는 이름에 단일 아포스트로피가 포함되어 있으면 함수 호출이 중단된다는 것입니다. 나는 '&#39;으로 바꾸기 위해 이름 대신에 문자열을 대체하려고 시도했지만 브라우저에 의해 여전히 '으로 변환 된 것으로 보입니다.

어떻게 이런 생각을 할 수 있습니까?

+0

슬래시로 이스케이프합니까? '\ ''? –

+0

가능한 복제본 : [Javascript escape quotes] (http://stackoverflow.com/questions/2004168/javascript-escape-quotes)? –

답변

1

escape() 또는 JavaScript 버전 1.5 이후를 사용하십시오. 대신 encodeURI() 또는 encodeURIComponent()를 사용하십시오.

+0

건배, 나는 그것을 전달하기 위해 탈출구를 사용하고 함수에서 이스케이프()를 사용했다. – user3429445

0

다른 코드와 함께 문자열을 매시 (mashing)하여 코드를 작성하지 마십시오. JavaScript 내부에서 HTML 안에 JavaScript가있어 두통을 피할 수있는 방법입니다.

DOM 조작을 대신 사용하십시오.

var a = document.createElement('a'); 
a.href = "#"; // You should use a button instead of a link to the top of the page 
a.className = "facebook-share"; 
a.addEventListener('click', function() { 
    facebookWallPost(name); 
}); 
a.appendChild(
    document.createTextNode('Share'); 
); 
관련 문제