这个 javascript 东西的新手。这真让我抓狂!
如何在字符串变量中添加 URL?
这是我的:
function getRiskMessage(){
var msg = " visit our advice website at <a href=\'http://www.example.com\'>this site</a>";
if(totalRiskScore > 25){
//this message (High Risk)
msg2 = show();
}//close if
return msg;
}
但是当我将它输出到 div 而不是链接“this link”时 - 我得到了一个标签和 url 作为字符串,如上所示。
我做错了什么,需要理解这一点。
最佳答案
tl;dr 您正在使用 createTextNode
,它创建一个纯文本节点。不要那样做 :) 请改用 innerHTML
属性。有关详细信息,请参阅下文。
您不需要转义引号,除非它们类似于开始和结束引号:
var foo = "Visit <a href='http://bing.com'>Bing</a>.";
在上面,字符串以双引号开头和结尾,因此可以毫无问题地使用单引号。
var foo = "Visit <a href=\"http://bing.com\">Bing</a>.";
在上面,我们在字符串和 [href] 属性周围使用了双引号。因此,必须转义内引号(围绕属性),以免混淆解析器。
最后,当你输出时,确保输出为 HTML:
div.textContent = foo; // Represents foo as plain text
div.innerHTML = foo; // Interprets foo as HTML
div.appendChild( document.createTextNode( foo ) ); // Similar to textContent
div.appendChild( document.createElement( "span" ) ).innerHTML = foo; // HTML
示例:
document.querySelector( ".msg" ).innerHTML = "Visit <a href='http://bing.com'>Bing</a>.";
<div class="msg"></div>
关于Javascript:如何在字符串变量中包含 url?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/31417271/