MarkKlg.js 2.7 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172
  1. //设置页面的展示内容
  2. function InitPageData(klg, klgcode) {
  3. var html = $("body").html();
  4. var words = html.replace(/(<br[^>]*>)+/gi, "</p><p>");
  5. var klgArr = klg.split("|");
  6. var klgcodeArr = klgcode.split("|");
  7. //替换所有的换行符
  8. words = words.replace(/\r\n/g, "<br>");
  9. words = words.replace(/\n/g, "<br>");
  10. words = MarkKnowledge("<p>" + words + "</p>", klg.split("|"), klgcode.split("|"));
  11. if (words !== null && words !== "") {
  12. var reg = /<script\b[^<]*(?:(?!<\/script>)<[^<]*)*<\/script>/gi;
  13. words = words.replace(reg, function (replacement) { return HTMLEncode(replacement); });
  14. }
  15. if (words !== null && words !== "") {
  16. $("body").html(words);
  17. //知识点绑定事件
  18. $('.TextMark').click(function () {
  19. $(this).attr("id", $(this).attr("word"));//临时给词汇添加ID
  20. ShowWord(this);
  21. });
  22. }
  23. }
  24. //显示知识点课件
  25. function ShowWord(obj) {
  26. var JQThis = $(obj);
  27. var knowlegde = $.trim(JQThis.attr("word"));
  28. var knowlegdecode = $.trim(JQThis.attr("code"));
  29. //移动端外部实现弹出
  30. alert(knowlegdecode);
  31. }
  32. //知识点划线处理
  33. function MarkKnowledge(htmls, Knowledge, code) {
  34. var WordReg = "";
  35. var reg = /[>]([^<>]*)[<]/gi;
  36. htmls = htmls.replace(reg, function (match, group) {
  37. var matchVal = group;
  38. if (matchVal.replace(/\s*/gi, "").length != 0) {
  39. for (var n = 0; n < Knowledge.length; n++) {
  40. if (Knowledge[n] != "--") {
  41. Knowledge[n] = Knowledge[n].replace("(", "").replace(")", "");
  42. WordReg = "(\"|'|\\s|^[a-zA-Z][^>]){1}(" + Knowledge[n] + ")(d|ed|s|es|er|ers|ing)?(,|\\.|\\?|'|\"|\\s|;){1}";
  43. var RegWord = new RegExp(WordReg, 'i');
  44. matchVal = matchVal.replace(RegWord, " $1#¥@<" + n + ">$2#¥@$3$4 ");
  45. if (matchVal != group) {
  46. group = matchVal;
  47. Knowledge[n] = "--";
  48. }
  49. }
  50. }
  51. //去掉未能标志的知识点标志
  52. 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>")
  53. matchVal = matchVal.replace(/#¥@/g, "");
  54. return ">" + matchVal + "<";
  55. }
  56. else {
  57. return match;
  58. }
  59. });
  60. //加上单词编码
  61. reg = /<a[^>]*class='TextMark'[^>]*code='(\d+)'>/gi;
  62. htmls = htmls.replace(reg, function (match, group) {
  63. return match.replace(group, code[group]);;
  64. });
  65. return htmls;
  66. }