Discuz! X2 發帖時圖片地址不能直接解析顯示為圖片。

現在的效果是:當圖片地址有 http 字首時,不管有沒有開啟解析 img 標籤,都會直接 js 解析成 url 標籤而不是 img 標籤。

其實該功能 Discuz! X2.5 中已經有了,發帖時能直接顯示為圖片,但是 Discuz! X2 中還沒有對其進行更新。現給出解決辦法。

解決辦法需要修改兩個 javascript 檔案,具體如下,修改儲存後便能快捷解析圖片地址顯示為圖片。

1. 修改檔案  static/js/forum.js
找到程式碼

  1. $('fastpostsubmit').disabled = true;
  2. theform.message.value = parseurl(theform.message.value);

改為

  1. $('fastpostsubmit').disabled = true;
  2. theform.message.value =
    theform.message.value.replace(/([^>=]"'/]|^)((((https?|ftp)://)|www.)([w-]+.)*[w-u4e00-u9fa5]+.([.a-zA-Z0-9]+|u4E2Du56FD|u7F51u7EDC|u516Cu53F8)((?|/|:)+[w./=?%-&~`@':+!]*)+.(jpg|gif|png|bmp))/ig,
    '$1[img]$2[/img]');
  3. theform.message.value = parseurl(theform.message.value);

2. 修改檔案 static/js/forum_post.js
找到程式碼

  1. hideMenu();
  2. theform.message.value = message;

改為:

  1. hideMenu();
  2. theform.message.value =
    message.replace(/([^>=]"'/]|^)((((https?|ftp)://)|www.)([w-]+.)*[w-u4e00-u9fa5]+.([.a-zA-Z0-9]+|u4E2Du56FD|u7F51u7EDC|u516Cu53F8)((?|/|:)+[w./=?%-&~`@':+!]*)+.(jpg|gif|png|bmp))/ig,
    '$1[img]$2[/img]');
  3. theform.message.value = message;