這問題就是user輸入不符規定的youtube網址
Discuz認不出她是啥東西
就直接把網址show出來而不是嵌入影片至文章
我的解決方法是改編輯器的javascript
早在user發文章之前就透過js把網址修改成Discuz認得出的youtube網址格式
網址例子
http://www.youtube.com/watch?v=U4UwoDtTAD4
https://www.youtube.com/watch?v=U4UwoDtTAD4
http://www.youtube.com/watch?feature=player_embedded&v=U4UwoDtTAD4
https://www.youtube.com/watch?feature=player_embedded&v=U4UwoDtTAD4
http://youtu.be/U4UwoDtTAD4
以上只有第一個符合可以正常顯示
下面4個都不行
所以做法就是用正規表示法抓出v的值再把這個v放到正規網址上就好
可是我正規表示法不熟....所以用很蠢的作法....
但可以working就好XD
修改static/js/editor.js裡
case 'vid':
裡面的input加入onblur事件
<input onblur="modifyVideoUrl(this)" type="text" value="" id="' + ctrlid + '_param_1" style="width: 220px;" class="px" />
新增function
function modifyVideoUrl(e) {
var v = jQuery(e).val();
v = v.replace('http://www.youtube.com/watch?v=', '');
v = v.replace('https://www.youtube.com/watch?v=', '');
v = v.replace('http://www.youtube.com/watch?feature=player_embedded&v=', '');
v = v.replace('https://www.youtube.com/watch?feature=player_embedded&v=', '');
v = v.replace('http://youtu.be/', '');
jQuery(e).val('http://www.youtube.com/watch?v=' + v);
}
沒有留言:
發佈留言