document.getElementById("img").innerHTML="< img src='/sitepath/"+imgg+".jpg' width='72' height='44' onclick='alert('hello');' />";
以上代码是我的javascript。问题是打印你好或任何其他字符串。如果我只是输入123代替你好,它确实提醒。但我不能在那里使用像你好的字符串。通常,警报函数中的字符串保留在引号内,但整个内容都在双引号内,并且我已经在onclick函数的开头使用了单引号。我尝试使用Escape字符(“\”),但它没有帮助。有什么建议吗?
答案 0 :(得分:14)
试试这个:
document.getElementById("img").innerHTML = '<img src="/sitepath/' + imgg + '.jpg" width="72" height="44" onclick="alert(\'hello\');" />';
答案 1 :(得分:8)
如果使用撇号作为HTML属性的分隔符,则必须对放在属性中的撇号进行HTML编码:
document.getElementById("img").innerHTML="< img src='/sitepath/"+imgg+".jpg' width='72' height='44' onclick='alert('hello');' />";
我更喜欢在Javascript中使用撇号作为字符串,而在HTML属性中使用引号作为分隔符。然后你只是逃避Javascript字符串中的撇号:
document.getElementById("img").innerHTML='< img src="/sitepath/'+imgg+'.jpg" width="72" height="44" onclick="alert(\'hello\');" />';
要将任何字符串放在Javascript中,在HTML属性中,在Javascript中的字符串中,您可以:
答案 2 :(得分:3)
JavaScript中的HTML内部有JavaScript。这自然令人困惑。最好避免引用和转义的字符串抛出问题(当使用用户提交的数据时,这很容易导致安全漏洞),并以DOM方式执行:
var img= new Image();
img.src= '/sitepath/'+imgg+'.jpg';
img.width= 72;
img.height= 44;
img.onclick= function() {
alert('hello');
};
document.getElementById('img').appendChild(img);
答案 3 :(得分:1)
我尝试使用Escape字符(“\”),但它没有帮助
Javascript与C#不同,您一次只能使用两次,例如:alert('We are\\'t going to go')
答案 4 :(得分:0)
您需要使用双引号并在onclick属性中将其转义
document.getElementById("img").innerHTML="<img src='/sitepath/"+imgg+".jpg' width='72' height='44' onclick=\"alert('hello');\" />";
答案 5 :(得分:0)
外部引号是单引号还是双引号无关紧要。您可以使用反斜杠转义外部字符串中的字符... \'变为'字符串本身。无论是达林还是马苏德的例子都可行。但马苏德对于需要使用双引号作为外部封闭是无知的。
答案 6 :(得分:0)
如果有人需要发送变量而不是字符串“hello”怎么办?像这样:
function showContent(toPopulate) {
document.getElementById(toPopulate).innerHTML = "<a href='javascript:showOtherContent(*toPopulate*);'>show</a>"
}
function showOtherContent(toPopulate) {...}
那么如何将toPopulate作为变量发送到showOtherContent()?
以上解决方法如下:
document.getElementById(toPopulate).innerHTML = "<a href='javascript:showOtherContent(\"" + toPopulate + "\");'>show</a>"