1

目标是为每个 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);
}

但数据始终未定义。还是我做错了什么?

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 回答