2012-04-18 3 views
1

目的は、ajaxごとにスクリプトタグを読み込み、スクリプトを実行してスクリプトタグの内容(iframeに動画を表示)を表示することです。JQueryの動的スクリプトタグと実行

シナリオ: シナリオはビデオページです。 "video-text"をクリックすると、domのidが決定されます。その後、ajax-php-requestは、決定されたidで実行されます。このリクエストはscriptタグで応答します。そして、これは問題です:どうすればiframeを入手できますか? 誰かに私のためのヒントをお持ちですか?

AJAX呼び出し:

$.ajax({ 
    type: "GET", 
    url: "/get-embed-by-id/"+$(this).find('.views-field-nid .field-content').html(), 
    success: postToPageTwo, 
    error : postToPageTwo, 
    datataype: "html", 
}); 

このコールはこの1つ

<script type="text/javascript" src="http://exampleurl.de/video/7"></script> 

ようなスクリプトを返し、このスクリプトの内容は、例えばある:

(function(){ 
    document.write('<iframe id="video_11" class="mediacube_video" 
    src="http://exampleurl.de/video/11.html?" scrolling="no" 
    align="center" frameborder="0" framespacing="0" width="725" height="409"> 
    </iframe>'); 
})() 

EDIT $ .getScriptで使用するコード:

$.getScript("http://exampleurl.de/video/5", scriptResponse); 

とscriptResponseのコード:

function scriptResponse(data) { 
    console.log("data:"); 
    console.log(data); 
} 

が、データは常に定義されていません。または私は何か間違っていましたか?

答えて

2

jQueryには、スクリプトをロードして実行するための.getScript()があります。スクリプトを呼び出すために、別のスクリプトをロードするためにhtmlを返すようにajaxを呼び出す必要はありません(これは多くのラウンドトリップです)。

$.getScript('http://exampleurl.de/video/7'); 

最初の要求は、実際に(おそらくいくつかは、スクリプトのリンクを決定するために、バックエンドでの解析)重要ならば、あなたはスクリプトのちょうどURL初期応答リターンを持つことができます。その後、.getScript()

$.get('initial_url',function(returned_url){ 
    $.getScript(returned_url); 
}); 

それでも、あまりにも多くのラウンドトリップのためにその返された文字列を使用します。

+0

私は上記のコードを編集します。おそらく再び見ることができます – bkb

+0

フェッチしているスクリプトの機能の中で 'console.log()'を試してみてください。表示された場合、スクリプトは実行されています。 – Joseph

+0

私は他のいくつかの問題を抱えていますが、これはあなたの正解です。だから、私はこれを答えたものとしてマークする。ありがとう! – bkb

関連する問題