2017-05-03 5 views
1

jQueryを使用して権限なしでiFrameを作成しようとしています。 iFrame属性を追加できますが、値が必要です。私は空の値( '')を追加することで汚れた解決法を使用していますが、これは正しい方法ですか? 権限のないサンドボックスのiFrameを作成するより良い方法はありますか?jQueryを使用してサンドボックス化された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()); 
 
}
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script> 
 
<article> 
 
    <span> 
 
     <p>helloworld</p> 
 
     </span> 
 
</article>

答えて

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は外部スタイルシートでも設定するのが理想です。

+0

ああ、私はその仕様を監督しました。ありがとうございました! – Zalem

関連する問題