2013-08-05 5 views
0

문자열의 작은 따옴표로 _gaq.push 함수를 실행하는 데 문제가 발생했습니다 이제 대체 텍스트 문자열의 작은 따옴표를 Replace (" '', '\' ").다른 인라인 자바 스크립트 함수에 인라인 자바 스크립트 함수를 매개 변수로 전달

<a onclick="_gaq.push(['_trackEvent', 'XYZ', 'ABC', 'Music and fun daddy's child']);" href="www.xyz.com" target="_blank"> 
Deal with daddy 
</a> 

것은 누군가가 나 자바 스크립트 인라인 함수를 교체하고 _gaq.push 함수에서 매개 변수로 패스를 작성 도와주세요 수 없습니다.

UPDATE : - 난 더 이상 변수를 정의 할 수없는 하나 개의 콘텐츠 관리 시스템에서 지원하는 스크립팅 languange 내부에이 스크립트를 사용하고 있습니다.

은 그래서 온 클릭의 변수 외부 설정되어 정말이 작업을 수행 할

+0

같은 함수에 그 값을 통과하면'_gaq.push'합니까 호출은'onclick' 핸들러에 직접 인라인 되어야만합니까? 함수에서 랩핑하는 것이 더 쉬울 수도 있고 'onclick'을 통해 호출되는 랩퍼 함수 만 가질 수도 있습니다. – ajp15243

+0

어떻게 렌더링됩니까? 이상적인 솔루션은 페이지를 렌더링 할 때 값을 올바르게 이스케이프 처리하는 것입니다. –

+0

내 대답보기 –

답변

0

유일한 방법의 온 클릭에라는 단일 자바 스크립트의 모든 필요합니다.

var description = "Music and fun daddy's child".replace("'", "\'"); 

<a onclick="_gaq.push(['_trackEvent', 'XYZ', 'ABC', '" + description + "']);" href="www.xyz.com" target="_blank"> 
Deal with daddy 
</a> 
+0

당신은 올바른 사람이지만 여기에 도전이 있습니다. 사용하고있는 스크립팅 언어로는 어떤 변수도 정의 할 수 없습니다. 그것은 컨텐츠 관리 시스템 지원 스크립팅 랭거지입니다. –

+0

HTML 마크 업에서 어떻게 그 변수를 사용합니까? 현재 무효 인 것 같습니다. – Bergi

0

앵커 태그에 onclick 기능을 'Music and fun daddy's child' 값을 전달하기 전에 그 값을 얻을하고 작은 따옴표 ('이)이 있는지 찾기 위해 .indexOf() 방법을 사용해야합니다. .replace() 방법

예를 사용하여 당신이 \'로 교체해야 발견하는 경우

var str = "Music and fun daddy's child"; 
var n = str.indexOf("'"); 
if(n >= 0){ 
var n = str.replace("'","\\'"); 
    alert(n); 
} 

그런

<a onclick="_gaq.push(['_trackEvent', 'XYZ', 'ABC', '"+n+"']);" href="www.xyz.com" target="_blank"> 
    Deal with daddy 
</a> 
+0

['String.contains'] (https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/String/contains)는 현재 Firefox 이외의 브라우저에서 지원되지 않습니다. Chrome 28에서 직접 시도했습니다. ['String.indexOf'] (https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/String/indexOf)를 사용해야합니다. [IE6만큼 뒤로] 지원되었습니다 (http://msdn.microsoft.com/en-us/library/ie/53xtt423 (v = vs94) .aspx) (추가 정보가없는 경우). – ajp15243

+0

알려주지 않고 편집하면'.contains()'가 지원되지 않는다는 것을 알 수 없을 것입니다. 나는 계속해서 당신을 위해 그것을 편집했지만 그와 같은 과감한 변화를 위해서 다른 사람에게 책임을 남겨 두지 않고 직접 편집 할 수 있습니다. 그래서 변경 사항을 고려하여 답변을 검토 할 수 있습니다. 당신이 그것에 대해 생각하는 방식을 이해합니다. – ajp15243

+0

@ ajp15243 의견을 보내 주신 고맙습니다. –

관련 문제