Maa*_*aaz 5 html javascript php ajax jquery
所以基本上我使用jQuery post对外部php页面进行ajax调用,然后我回显结果,然后在实际页面上显示它.
问题是,每当外部php页面返回一些javascript时,它就不会显示在实际页面上.
正在返回Javascript
<script type="text/javascript">z_media = "SQgeKL07Nr"; z_autoplay=false; z_width=899; z_height=506;</script><script type="text/javascript" src="http://www.zunux.com/static/js/embed.js"></script>
Run Code Online (Sandbox Code Playgroud)
我的jQuery
function videoGrabber(mirror_id, video_version, firstVideo_version, videoNumber) {
jQuery.post("/path/to/my/external/php/file.php", {firstParam : mirror_id, secondParam : video_version, thirdParam : firstVideo_version}, function(data) {
//this is your response data from serv
console.log(data);
jQuery('#videoContainer').html(data);
});
return false;
}
Run Code Online (Sandbox Code Playgroud)
现在通常,当返回iframe时,它们在#videoContainerid 中显示完全正常,但是,每当返回javascript嵌入代码时,它都不会在#videoContainerid中显示任何内容.但我可以肯定地确认外部php页面正在返回数据,因为我可以在控制台中看到它.那么,我该如何解决这个问题呢?
尝试添加eval()实际运行您正在检索的 Javascript 代码:
function videoGrabber(mirror_id, video_version, firstVideo_version, videoNumber) {
jQuery.post("/path/to/my/external/php/file.php", {firstParam : mirror_id, secondParam : video_version, thirdParam : firstVideo_version}, function(data) {
//this is your response data from serv
console.log(data);
jQuery('#videoContainer').html(data);
eval(data);
});
return false;
}
Run Code Online (Sandbox Code Playgroud)
顺便说一句,请确保您具有良好的安全性 -eval()如果有人可以拦截 ajax 调用并注入自己的代码,则很可能会造成混乱。
哦,由于eval()要尝试仅评估 Javascript 代码,因此您需要将返回代码更改为仅原始 JS 代码(无<script>标签):
z_media = "SQgeKL07Nr"; z_autoplay=false; z_width=899; z_height=506;
Run Code Online (Sandbox Code Playgroud)
唯一需要处理的其他事情是:
<script type="text/javascript" src="http://www.zunux.com/static/js/embed.js"></script>
Run Code Online (Sandbox Code Playgroud)
您能否将该脚本包含在调用页面(带有 ajax 代码的页面)中,然后从通过 ajax 获得的代码触发它?所以你的ajax代码最终会返回类似这样的内容:
z_media = "SQgeKL07Nr"; z_autoplay=false; z_width=899; z_height=506; triggerEmbedScript();
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
854 次 |
| 最近记录: |