jquery – Soundcloud iframe在iOS下停止工作

前端之家收集整理的这篇文章主要介绍了jquery – Soundcloud iframe在iOS下停止工作前端之家小编觉得挺不错的,现在分享给大家,也给大家做个参考。
我已经编写了包含iframe中的一些soundcloud小部件的phoneGap / Cordova代码.该代码Android和iOS下的桌面浏览器中运行良好.

今天,iOS版本停止播放音乐.我也尝试在移动Safari和不同的iPhone和仿真器上运行代码,结果相同.

所有其他平台仍然按照预期工作.

Xcode控制台不显示任何不寻常的,但移动safari显示错误

>Unsafe JavaScript attempt to access frame with URL http://domainname/ from frame with URL http://w.soundcloud.com/player/?url=http://api.soundcloud.com/tracks/12345. Domains,>protocolls and ports must match.

我不知道这是否曾经在那里,但它是我能找到的最好的.

这是代码的相应部分:

SC.get('/resolve',{
         url : 'http://soundcloud.com/' + trackURL[c]
    },function(track) {
            SC.get('/tracks/' + track.id + '/comments',function(comments) {
                if (c == 0) {
                $("#track1").append("<div style='height:110px; white-space:normal;overflow:visible;'> <img src='" + track.artwork_url + "' class='trackTitle' > <img src='img/play.png'  id='play1' class='mainPlay'/> <h3 style='margin-top:75px;margin-left:120px; font-size:10px; position:absolute; line-height:10px;'> " + track.title + "</h3></div>");
                $("#track1").css("background","none");
                $('#sc-widget1').attr("src","http://w.soundcloud.com/player/?url=http://api.soundcloud.com/tracks/" + trackID[0]);
            }

    var widgetIframe = document.getElementById('sc-widget1');
    widget1 = SC.Widget(widgetIframe);

    $("#play1").on('click',function() {
        widget1.toggle();
    }

我想知道这是否真的是一个跨域问题.帮助真的很感激.

谢谢!

小增编:当运行在物理iphone上时,我有时会得到一个:

Failed to load webpage with error: The operation couldn’t be completed. (NSURLErrorDomain error -999.)

但是并不总是如此,它并没有改变(非)功能.

解决方法

这可能是因为soundcloud js播放器将从soundcloud的域(JSON和实际音频)加载资源,这些浏览器定义为不安全.

您可以尝试使用通配符“*”按照http://docs.phonegap.com/en/1.9.0/guide_whitelist_index.md.html将所有域列入白名单,以查看是否有效.如果是这样,您可以将白名单缩小到您正在加载内容的特定域.

我也只是注意到你有一个参考在你的代码w.soundcloud.com是单一w正确?

猜你在找的jQuery相关文章