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;