目标是按照ajax加载脚本标签,执行脚本并显示脚本标签的内容(带有视频的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);
}
但数据始终未定义。或者我有什么不对吗?
答案 0 :(得分:2)
jQuery有.getScript()
为您加载和执行脚本。没有必要调用ajax来返回一个html来加载另一个脚本(这是很多往返)只是为了调用一个脚本。
$.getScript('http://exampleurl.de/video/7');
如果初始请求确实很重要(可能在后端进行一些解析以确定脚本的链接),则可以让初始响应返回脚本的url。然后将返回的字符串用于.getScript()
$.get('initial_url',function(returned_url){
$.getScript(returned_url);
});
但是,往返太多了。