2014-02-08 86 views
1

我需要將一個按鈕打印到一個div,該div將傳遞一個變量MyVar(字符串),或者,確切地說,它的值作爲函數addfr()的參數。代碼:Javascript quote escape to bug

document.getElementById("somediv").innerHTML="<button onclick=\"addfr(\""+MyVar+"\")\">Add as friend</button>"; 

而不是預期的

<button onclick="addfr("MyVar")">Add as friend</button>" 

我得到:

<button onclick="addfr(" MyVar")"=""> 

這到底是怎麼回事?任何想法如何解決這一問題?

編輯:最終的解決方案是,對於那些有興趣:

<button onclick=\"addfr(&quot;"+MyVar+"&quot;)\">Add as friend</button> 
+0

爲什麼不直接使用單引號代替雙引號的字符串(反之亦然)裏面?完全消除問題。 –

+0

Nop,試過了,問題仍然存在 –

回答

3

它需要HTML轉義。嘗試使用&quot;代替\"

+0

是的,那正是我所需要的。它部分地解決了這個問題,儘管我還需要使用\「以使其充分發揮作用。 –

0

您可以使用單引號代替:

document.getElementById("somediv").innerHTML="<button onclick=\"addfr('"+MyVar+"')\">Add as friend</button>";