2011-04-08 10 views
2

HTMLの一部を含むHTMLページに<script>タグを含めています。このフラグメントを取得してページに挿入したいと思います。フラグメントの場所はページ自体と同じサーバー上にあるため、クロスサイトの問題はありません。私は、スクリプトのコンテンツにアクセスするためにjQueryのテンプレートを使用しようとしてきたとして(ところで、私はそれだけでHTMLリテラルだにもかかわらず、テキスト/ X-jqueryの-TMPLとして、スクリプトのタイプを指定したJavaScript以外の 'スクリプト'のコンテンツを取得するにはどうすればよいですか?

<script id="frag" src="/frag.html" type="text/x-jquery-tmpl"></script> 

)。私は 'タイプ'の価値は大きな問題ではないと信じています。

私が試したいくつかの事柄:すべてのjQueryのための

// Try inserting frag.html into div hdr 
// this attempt, using jQuery templates, doesn't work 
$('#frag').tmpl().appendTo('#hdr'); 

// This is an empty string 
var contents = $('#frag').text(); 

申し訳ありませんが、私はそれなしにこれを試みる方法のさらに少ないアイデアを持っています。私はjavascriptの無知なので、常にjQueryのふわふわした保護が必要です。

+0

ちょうど好奇心の理由で、なぜ、スクリプトタグにhtmlを挿入するのですか? – Andre

+0

私はあなたがこれをやる理由は不思議です。 htmlファイルに入れて、そのファイルやページ上の要素を取得する方が簡単ではないでしょうか?なぜあなたがこれをするのか不思議で、それはすべてです... –

+0

@Andre - それは別のファイルにありますので、ページには埋め込まれていません。 – mackenir

答えて

3

あなたは「.htmlを() 『を使用する必要があります。

var contents = $('#frag').html(); 

は個人的に私は愚かだ、と』の.text()」動作するはずだと思いますが、私は、問題とjQueryのバグを記録し人々はそれを修正することを拒否した。

はまた、「タイプ」属性の値は、実際には大したことではないですが、あなたは間違いなく(もちろん)何かはなく、実際のJavaScriptのタイプに設定する必要があります。

完全
+0

ネイティブ 'innerText'または' textContent'プロパティは機能しませんか? – Tomalak

+1

@Tomalak "innerText"は何らかの理由でIEで '

2

以上:

$(document).ready(function(){ 

    $('#hdr').append($('#frag').html()); 

}); 

またはまったくscriptタグなし...

<div id='hdr'> 
     //content 
     <div id='hdr_add'></div> 
    </div> 
... 

    $(document).ready(function(){ 
     $('#hdr_add').load('frag.html'); 
    }); 

.load()が甘いと簡単にはに所与のURLからコンテンツをロードすること、ショートカットAJAX呼び出しです与えられた要素。

+0

.loadは簡単な解決策です。私はそれをタグに入れておくと、何らかの形で「以前に」ダウンロードされていることを確実にして、おそらくページの外観を「ビルド」にすることを願っていました。しかし、それは私のところでは純粋な推測です。 – mackenir

+0

Hmm、OK。私はそれを試しましたが、負荷を使ってフラグメントを挿入することが視覚的には分かりません。それは私に推測を教えるでしょう。 – mackenir

関連する問題