我正在尝试使用jQuery创建一个没有任何权限的iFrame。 我能够添加iFrame属性,但它需要一个值。我通过添加空值('')来使用脏解决方案,但这是正确的方法吗? 有没有更好的方法来创建无权限的沙盒iFrame?
$(function() {
$('article').each(createIFrame);
});
function createIFrame() {
setArticleContent($(this), 'hello sandbox');
}
function setArticleContent(article, content) {
article.find('span>p').first().text('');
$('<iframe>', {
srcdoc: '<p>' + content + '</p>',
frameborder: '0',
sandbox: ' ',
style: 'background:#00FF00',
}).appendTo(article.find('span>p').first());
}
&#13;
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
<article>
<span>
<p>helloworld</p>
</span>
</article>
&#13;
答案 0 :(得分:1)
我通过添加空值('')来使用脏解决方案,但这是正确的方法吗?
它根本不脏,但是你应该注意到根据规格你应该使用空字符串:
属性的值可以是空字符串(应用所有限制),也可以是以空格分隔的标记列表,这些标记可以解除特定限制
https://developer.mozilla.org/en-US/docs/Web/HTML/Element/iframe#attr-sandbox
$('<iframe>', {
srcdoc: '<p>' + content + '</p>',
frameborder: '0',
sandbox: '', // note the space was removed
style: 'background: #00FF00',
}).appendTo(article.find('span>p').first());
理想情况下,style
也应通过外部样式表设置。