这段相当短的代码:
<div id='votmplayer'></div>
<script>
$.getJSON('/json/votm.json', function(votmjson) {
$.getJSON('/cgi-bin/getvideo.cgi?'+votmjson.videos[0].id, function(votmchoice) {
document.getElementById('votmplayer').innerHTML=votmchoice.embed.code;
});
});
</script>
正在产生意外的输出。渲染的 HTML 显示:
<div id='votmplayer'>
"<iframe src="http://www.website.com/embed/abcdefghij123456" frameborder="0" width="608" height="468" scrolling="no"</iframe>"
</div>
这当然给了我 <iframe>
作为文字文本。我尝试了以下方法,但结果是一样的:
var choice = votmchoice.embed.code;
document.getElementById('votmplayer').innerHTML=choice;
console.log(votmplayer)
在 Chome 中显示以下内容:
embed: Object
code: "<iframe src="http://www.website.com/embed/abcdefgij1234565" frameborder="0" width="608" height="468" scrolling="no"></iframe>"
我有点困惑,因为我在网页的其他地方使用了类似的代码并且它被正确呈现。我在 Google 上找不到类似的内容,但也许我问错了问题。
最佳答案
您正在使用 JQuery(我是对的吗?)。所以:
JQuery 可以从字符串创建节点,例如:
$('<h1>Heading</h1>')
它返回一个 JQuery DOM 元素。它还具有将 HTML 简化字符串转换为 HTML 字符串并从中创建 JQuery 节点的方法:
$('#votmplayer').html( $.parseHTML(votmchoice.embed.code)[0].textContent );
我创建了一个工作 fiddle
关于JavaScript:为什么我的 HTML 中会出现 "quotes"?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/34435870/