繁体   English   中英

jQuery ajax将成功传递给外部变量

[英]jQuery ajax pass success into outside variable

我在使用jquery ajax时遇到问题。 我已经有一个js播放器,可以在没有ajax的情况下正常工作。 IE浏览器

/jwplayer.js

window.onload = function () {

function etc etc etc

jwplayer('player').setup({
playlist: [{
file: video_url,
}],
width: "640",
height: "380",
autostart: "true",
stretching: "exactfit",
volume: "100",
});
}

PHP页面

<script type="text/javascript" src="/jwplayer.js"></script>
<script src="http://code.jquery.com/jquery-1.11.3.min.js"></script>

<div id='player'></div>

<script type="text/javascript">
var video_url = some_website_dot_com/file/.m3u8
</script>

这样很好。 但是我无法将ajax函数添加到var video_url 这是我正在尝试使其工作的脚本

<script type='text/javascript'>
var video_url = function () {
$.ajax({
    type: 'get',
    url: "some_website_dot_com/file/.m3u8",
    dataType: "html",
    success: function (data) {
        var result = data.match(/(http\:\/\/\S+m3u8)/);
        return result[1];
    }
});
}();
</script>

您正在尝试从内部函数返回某些内容,为什么不这样做呢?

var video_url;
$.ajax({
    type: 'get',
    url: "some_website_dot_com/file/.m3u8",
    dataType: "html",
    success: function (data) {
        var result = data.match(/(http\:\/\/\S+m3u8)/);
        video_url = result[1];
    }
});

更新:在获取网址时创建播放器并开始工作:

function setupVideo(data) {
    var result = data.match(/(http\:\/\/\S+m3u8)/);
    var video_url = result[1];
    jwplayer('player').setup({
        playlist: [{
            file: video_url,
        }],
        width: "640",
        height: "380",
        autostart: "true",
        stretching: "exactfit",
        volume: "100",
    });
}

$.ajax({
    type: 'get',
    url: "some_website_dot_com/file/.m3u8",
    dataType: "html",
    success: setupVideo
});

很好地阅读AJAX,尤其是异步A: 如何从异步调用返回响应?

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM