私はあなたのテストにFirefoxを使用していると思います。
<div id="outerContainer">
<div style="background-image: url({{ banner_url }})" id="mainBillboard">asdfasdf</div>
</div>
と、この:
console.log($('#outerContainer').html());
console.log($('#outerContainer').clone().html());
デモ:私はこれを使用するとSafariやChromeでhttp://jsfiddle.net/ambiguous/YEPjL/
を私は、Firefox、第二いずれかを使用する場合、私は両方に同じ出力を得るが、空のstyle
属性があります。 HTMLは次のようになりますただし、:
<div id="outerContainer">
<div style="background-image: url(does-not-exist)" id="mainBillboard">asdfasdf</div>
</div>
その後、私はどこでも同じ出力を得ます。
デモ:http://jsfiddle.net/ambiguous/XukCa/
問題はFirefoxがあるので{{ banner_url }}
が、それはHTMLを解析しようとしながら、明らかにそれを取り除く、有効なURLではないということです。あなたのHTMLが隠された<div>
の中にあっても、表示されているいくつかのHTMLと同じように、ブラウザは引き続き解析して検証する必要があります。
HTMLにテンプレートを埋め込む通常の方法は、ブラウザがそれらを解釈しようとしないようにするために、<script>
要素を使用することです。 (ご希望の場合は<script type="text/template">
)テンプレートごとに
<script type="text/html" id="tmpl-mainBillboard">
<div style="background-image: url({{ banner_url }})" id="mainBillboard">asdfasdf</div>
</script>
<script type="text/html" id="tmpl-somethingElse">
<!-- another template... -->
</script>
だから、1 <script type="text/html">
、その後、あなたは$('#tmpl-mainBillboard').html()
でコンテンツを取得し、解析のためのテンプレートエンジンにその出力を渡すことができる:私はあなたがこのような構造に切り替えることをお勧めします。
デモ:http://jsfiddle.net/ambiguous/cZzW9/
最後のデモは、Firefox、クロム、およびSafariで<script>
チャンクのために同じ出力を生成すること。
これを試してみてください:http://jsfiddle.net/LUewe/2/ おそらくhtml()メソッドですか? –