|
|
@@ -60,6 +60,32 @@ function AddDealKnTextFunc(WordsStr, KlgArr, KlgCodeArr) {
|
|
|
}
|
|
|
return WordsStr;
|
|
|
}
|
|
|
+// 处理包含和被包含的关系
|
|
|
+function DealContrainFunc(klgStr, klgcodeStr) {
|
|
|
+ var klgArr = klgStr.split("|");
|
|
|
+ var klgcodeArr = klgcodeStr.split("|");
|
|
|
+ var IndexArr = [];
|
|
|
+ for (var i = 0; i < klgArr.length; i++) {
|
|
|
+ for (var j = 0; j < klgArr.length; j++) {
|
|
|
+ if (i != j && klgArr[i].indexOf(klgArr[j]) > -1 && IndexArr.indexOf(j) == -1) {
|
|
|
+ IndexArr.push(j);
|
|
|
+ }
|
|
|
+ else if (i != j && klgArr[j].indexOf(klgArr[i]) > -1 && IndexArr.indexOf(i) == -1) {
|
|
|
+ IndexArr.push(i);
|
|
|
+ }
|
|
|
+ }
|
|
|
+ }
|
|
|
+ IndexArr.sort().reverse();
|
|
|
+ for (var i = 0; i < IndexArr.length; i++) {
|
|
|
+ klgArr.splice(IndexArr[i], 1);
|
|
|
+ klgcodeArr.splice(IndexArr[i], 1);
|
|
|
+ }
|
|
|
+ var ReData = {
|
|
|
+ klgStr: klgArr.join("|"),
|
|
|
+ klgcodeStr: klgcodeArr.join("|")
|
|
|
+ };
|
|
|
+ return ReData;
|
|
|
+}
|
|
|
|
|
|
//设置页面的展示内容
|
|
|
function InitPageData(klg, klgcode) {
|
|
|
@@ -84,13 +110,16 @@ function InitPageData(klg, klgcode) {
|
|
|
klg = klg.replace(ReKlgArr[i], "").replace("||", "").replace(/^\|/, "").replace(/\|$/, "");
|
|
|
klgcode = klgcode.replace(ReKlgCodeArr[i], "").replace("||", "").replace(/^\|/, "").replace(/\|$/, "");
|
|
|
}
|
|
|
+ // 判断是否存在包含和被包含关系
|
|
|
+ var ReData = DealContrainFunc(klg, klgcode);
|
|
|
+ klg = ReData["klgStr"];
|
|
|
+ klgcode = ReData["klgcodeStr"];
|
|
|
words = MarkKnowledge("<p>" + words + "</p>", klg.split("|"), klgcode.split("|"));
|
|
|
words = AddDealKnTextFunc(words, ReKlgArr, ReKlgCodeArr);
|
|
|
if (words !== null && words !== "") {
|
|
|
var reg = /<script\b[^<]*(?:(?!<\/script>)<[^<]*)*<\/script>/gi;
|
|
|
words = words.replace(reg, function (replacement) { return HTMLEncode(replacement); });
|
|
|
}
|
|
|
-
|
|
|
if (words !== null && words !== "") {
|
|
|
//$("body").html(words);
|
|
|
//知识点绑定事件
|
|
|
@@ -131,7 +160,7 @@ function MarkKnowledge(htmls, Knowledge, code) {
|
|
|
}
|
|
|
}
|
|
|
//去掉未能标志的知识点标志
|
|
|
- matchVal = matchVal.replace(/#¥@<(\d+)>((\w+\s*-?)+)#¥@(d|ed|s|es|er|ers|ing)?/gi, "<a class='TextMark' title='点击可查看知识点课件' word='$2' code='$1'>$2$4</a>")
|
|
|
+ matchVal = matchVal.replace(/#¥@<(\d+)>(('?\w+\s*-?)+)#¥@(d|ed|s|es|er|ers|ing)?/gi, "<a class='TextMark' title='点击可查看知识点课件' word='$2' code='$1'>$2$4</a>")
|
|
|
matchVal = matchVal.replace(/#¥@/g, "");
|
|
|
|
|
|
return ">" + matchVal + "<";
|