Discuz! X2关联链接bug

查了下代码,common_extra.js文件,29~387行,这里关联链接的关键字判断有问题,好像只处理了正文文本中第一个<br />之前的内容了,后面的都不做处理了;
relatedid[j] = 1;后,下一个<br />之前的的内容就不处理,因为if条件里进行了!relatedid[j]判断。
举个例子,后台设置关联链接词为:
1、电脑
2、电脑配件
3、笔记本
发帖内容为:
放到范德萨的萨芬电脑fdsalkj
街坊地块垃圾啊是否快乐电脑配件
房间打扫房了笔记本

那么只有第一个段落的电脑才会被js替换为关联链接。

提供一下临时解决方案:

for(var j = 0; j < relatedlink.length; j++) {
			if(relatedlink[j] && !relatedid[j]) {
				var ra = '<a href="'+relatedlink[j]['surl']+'" target="_blank" class="relatedlink">'+relatedlink[j]['sname']+'</a>';
				var $rtmp = $3;
				$3 = $3.replace(relatedlink[j]['sname'], ra);
				if($3 != $rtmp) {
					relatedid[j] = 1;
				}
			}
		}

for里面的 j > -1换成 j < relatedlink.length;,去掉else。

Tags: , , ,

发表回复