2012-06-08 2 views
0
내가 다음 코드를 사용하려고 해요

앞에 추가 할 때 따옴표 문제를 탈출 : 그것은 전혀 표시되지 않는JQuery와 - 내용

$('#thirdPartyCheckoutButtons').prepend('<a href="https://www.resellerratings.com" onclick="window.open("https://seals.resellerratings.com/landing.php?seller=myID","name","height=760,width=780,scrollbars=1"); return false;"><img style="border:none;" src="//seals.resellerratings.com/seal.php?seller=myID" oncontextmenu="alert("Copying Prohibited by Law - ResellerRatings seal is a Trademark of All Enthusiast, Inc."); return false;" /></a><img src="https://www.myurl.com/hdsd834k.png" style="float: left;margin-left: 180px;">'); 

.. 내가 너무 많은 따옴표 차이를 해봤를, 난 몰라 그것을 얻으십시오!

답변

2

내면의 큰 따옴표로 인해 onclick 속성 값이 깨졌습니다. 그것들을 작은 따옴표로 바꾸고 그것들을 벗어나십시오.

...onclick="window.open(\'https://seals.resellerratings.com/landing.php?seller=myID\',\'name\',\'height=760,width=780,scrollbars=1\'); return false;"... 

동일한 문제가 oncontextmenu 이벤트에서 발생하며 동일한 수정을 수행하십시오.

...oncontextmenu="alert(\'Copying Prohibited by Law - ResellerRatings seal is a Trademark of All Enthusiast, Inc.\'); return false;" />... 

전체 코드 : 앞에 추가() 함수에서

$('#thirdPartyCheckoutButtons').prepend('<a href="https://www.resellerratings.com" onclick="window.open(\'https://seals.resellerratings.com/landing.php?seller=myID\',\'name\',\'height=760,width=780,scrollbars=1\'); return false;"><img style="border:none;" src="//seals.resellerratings.com/seal.php?seller=myID" oncontextmenu="alert(\'Copying Prohibited by Law - ResellerRatings seal is a Trademark of All Enthusiast, Inc.\'); return false;" /></a><img src="https://www.myurl.com/hdsd834k.png" style="float: left;margin-left: 180px;">');​ 
+1

HTML 속성 값입니다. \는 의미가 없습니다. – Quentin

+0

아, 고마워요 !!!!! – user1098767

+0

@Quentin 올바른 업데이트 중입니다. –

2

귀하의 문자열은 작은 따옴표로 구분된다. 즉, 문자열 안에 입력 한 모든 작은 따옴표는 a로 이스케이프해야합니다. 그러나 이것은 귀하의 문제가 아닙니다. 문제는 잘못된 HTML입니다. 이것은 당신이 무엇을 :

$('#thirdPartyCheckoutButtons').prepend('<a href="https://www.resellerratings.com" onclick="window.open("https://seals.resellerratings.com/landing.php?seller=myID","name","height=760,width=780,scrollbars=1"); return false;"><img style="border:none;" src="//seals.resellerratings.com/seal.php?seller=myID" oncontextmenu="alert("Copying Prohibited by Law - ResellerRatings seal is a Trademark of All Enthusiast, Inc."); return false;" /></a><img src="https://www.myurl.com/hdsd834k.png" style="float: left;margin-left: 180px;">'); 

당신이 당신의 HTML을 모두 통지하는 경우

값은 큰 따옴표로 구분되는 속성. 그러나 onclick = ""이벤트에서 다시 큰 따옴표를 사용하고 있습니다. ESCAPED 작은 따옴표를 사용하여이 충돌을 해결할 수 있습니다. oncontextmenu = ""이벤트에서도 같은 문제가 발생합니다.

$('#thirdPartyCheckoutButtons').prepend('<a href="https://www.resellerratings.com" onclick="window.open(\'https://seals.resellerratings.com/landing.php?seller=myID\',\'name\',\'height=760,width=780,scrollbars=1\'); return false;"><img style="border:none;" src="//seals.resellerratings.com/seal.php?seller=myID" oncontextmenu="alert(\'Copying Prohibited by Law - ResellerRatings seal is a Trademark of All Enthusiast, Inc.\'); return false;" /></a><img src="https://www.myurl.com/hdsd834k.png" style="float: left;margin-left: 180px;">'); 

앞으로이 문제를 방지하는 가장 쉬운 방법은 jQuery를 함수 호출 외부 문자열 (HTML)를 구축하고 변수로 문자열을 전달하는 것입니다.

+0

감사합니다. – user1098767