2012-04-18 78 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