1

目標は、ajaxごとにscript-Tagをロードし、スクリプトを実行して、script-tag(ビデオ付きのiframe)のコンテンツを表示することです。

シナリオ:シナリオはビデオページです。「ビデオテキスト」をクリックすると、dom内のIDが決定されます。その後、決定されたIDでajax-php-requestが実行されます。このリクエストは、スクリプトタグで応答します。そしてこれが問題です:どうすればiframeを入手できますか?誰かが私のためのヒントがありますか?

ajax-呼び出し:

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

この呼び出しは、このようなスクリプトを返します

<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>');
})()

$.getScriptで使用するコードを編集します。

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

およびscriptResponseのコード:

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

しかし、データは常に未定義です。または私は何か間違っていましたか?

4

1 に答える 1

2

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

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

最初のリクエストが本当に重要な場合(おそらく、スクリプトのリンクを決定するためにバックエンドで解析する場合)、最初の応答でスクリプトのURLだけを返すようにすることができます。次に、返された文字列を.getScript()

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

しかし、それでも、往復が多すぎます。

于 2012-04-18T08:44:57.570 に答える