Reputation: 1424
I have some user provided variable that gets inserted into a script. Normally this works well, but fails when certain characters such as quotes are used. Is there a way to escape this?
document.getElementById("test").innerHTML = "<div oncontextmenu='javascript:alert(" + var1 + ");return false;'>" + var2 + "</div>";
Upvotes: 0
Views: 78
Reputation: 1030
Try using:
document.getElementById("test").innerHTML = `<div oncontextmenu='javascript:alert(${var1});return false;'>${var2}</div>`;
Upvotes: 1
Reputation: 2360
Convert your string to Template literal with use of backticks( ` symbol)
document.getElementById("test").innerHTML = `<div oncontextmenu='javascript:alert(` + var1 + `);return false;'>` + var2 + `</div>`;
Upvotes: 0