我想知道是否有人可以帮我在Soundcloud的Fancybox 2媒体助手中制作另一个案例。我需要它来启动fancybox时加载soundclooud iframe - 否则有一些嵌入的东西真的很慢。
我对正则表达式不太熟悉 - 因此我的询问。
谷歌部分看起来像这样:
google_maps : {
matcher : /maps\.google\.([a-z]{2,3}(\.[a-z]{2})?)\/(\?ll=|maps\?)(.*)/i,
type : 'iframe',
url : function( rez ) {
return '//maps.google.' + rez[1] + '/' + rez[3] + '' + rez[4] + '&output=' + (rez[4].indexOf('layer=c') > 0 ? 'svembed' : 'embed');
}
}
现在,如果我们为soundcloud采用标准的iframe代码:
<iframe width="100%" height="166" scrolling="no" frameborder="no" src="https://w.soundcloud.com/player/?url=http%3A%2F%2Fapi.soundcloud.com%2Ftracks%2F91535490"></iframe>
我相信我们会从iframe中获取网址,因为直接链接不包含跟踪的ID - 仅限字符串表示。
到目前为止我所做的努力(努力;) - 以下是不可行的:
soundcloud : {
matcher : /w\.soundcloud\.([a-z]{2,3}(\.[a-z]{2})?)\/(\?ll=|url\?)(.*)/i,
type : 'iframe',
url : function( rez ) {
return '//w.soundcloud.com/player/?url=$1';
}
}
有人能指出我在正确的方向吗?
答案 0 :(得分:2)
好的 - 对于那些也很奇怪的人 - 我已经成功地使用以下内容:
soundcloud : {
matcher : /w\.soundcloud\.com\/player\/(.*)\/?(.*)/,
type : 'iframe',
url : function( rez, params, obj ) {
obj.width = '600px';
obj.height = '166px';
return '//w.soundcloud.com/player/' + rez[1];
}
}