MarkKlg1.js 2.7 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374
  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. return words;
  24. }
  25. //显示知识点课件
  26. function ShowWord(obj) {
  27. var JQThis = $(obj);
  28. var knowlegde = $.trim(JQThis.attr("word"));
  29. var knowlegdecode = $.trim(JQThis.attr("code"));
  30. //移动端外部实现弹出
  31. alert(knowlegdecode);
  32. }
  33. //知识点划线处理
  34. function MarkKnowledge(htmls, Knowledge, code) {
  35. var WordReg = "";
  36. var reg = /[>]([^<>]*)[<]/gi;
  37. htmls = htmls.replace(reg, function (match, group) {
  38. var matchVal = group;
  39. if (matchVal.replace(/\s*/gi, "").length != 0) {
  40. for (var n = 0; n < Knowledge.length; n++) {
  41. if (Knowledge[n] != "--") {
  42. Knowledge[n] = Knowledge[n].replace("(", "").replace(")", "");
  43. WordReg = "(\"|'|\\s|^[a-zA-Z][^>]){1}(" + Knowledge[n] + ")(d|ed|s|es|er|ers|ing)?(,|\\.|\\?|'|\"|\\s|;){1}";
  44. var RegWord = new RegExp(WordReg, 'i');
  45. matchVal = matchVal.replace(RegWord, " $1#¥@<" + n + ">$2#¥@$3$4 ");
  46. if (matchVal != group) {
  47. group = matchVal;
  48. Knowledge[n] = "--";
  49. }
  50. }
  51. }
  52. //去掉未能标志的知识点标志
  53. 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>")
  54. matchVal = matchVal.replace(/#¥@/g, "");
  55. return ">" + matchVal + "<";
  56. }
  57. else {
  58. return match;
  59. }
  60. });
  61. //加上单词编码
  62. reg = /<a[^>]*class='TextMark'[^>]*code='(\d+)'>/gi;
  63. htmls = htmls.replace(reg, function (match, group) {
  64. return match.replace(group, code[group]);;
  65. });
  66. return htmls;
  67. }