Discuz ~ 修正編輯器嵌入影片網址問題

這問題就是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);
}

沒有留言: