2012-04-18 75 views
1

目標是根據ajax加載腳本標記,執行腳本並顯示腳本標記(帶有視頻的iframe)的內容。JQuery動態腳本標記和執行

該場景: 該場景是一個視頻頁面。如果我點擊「視頻文本」,dom中的id將被確定。之後,ajax-php-request將以確定的ID執行。此請求將與腳本標記保持一致。這是問題:我如何獲得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); 
} 

但數據永遠是不確定的。還是我有什麼不對?

回答

2

jQuery有.getScript()爲你加載和執行腳本。不需要調用ajax來返回一個HTML來加載另一個腳本(這是很多往返),只是爲了調用腳本。

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

如果初始請求真正的問題(也許在後端的一些分析,以確定腳本的鏈接),你可以有初始響應返回的腳本只是URL。然後使用該返回的字符串作爲.getScript()

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

但仍然有太多的往返行程。

+0

我編輯我的代碼上面,也許你可以再看看 – bkb 2012-04-18 09:03:52

+0

嘗試'console.log()'裏面你正在提取腳本的功能。如果它確實出現,那麼腳本已經執行。 – Joseph 2012-04-18 09:06:51

+0

好吧,我還有其他一些問題,但這是你的正確答案。所以我將其標記爲已回答。謝謝! – bkb 2012-04-19 10:53:11