edit_online.html 2.4 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374757677787980
  1. <!DOCTYPE html>
  2. <html>
  3. <head>
  4. <meta charset="UTF-8">
  5. <title>文本编辑器示例</title>
  6. <!-- 引入Quill样式 -->
  7. <link rel="stylesheet" href="//cdn.quilljs.com/1.3.6/quill.snow.css">
  8. <style>
  9. #editor {
  10. height: calc(100vh - 70px); /* 假设其他元素的高度是100px */
  11. }
  12. </style>
  13. <script src="js/axios.min.js"></script>
  14. <script src="js/util.js"></script>
  15. </head>
  16. <body>
  17. <!-- 创建一个用于编辑的容器 -->
  18. <div id="editor"></div>
  19. <!-- 引入Quill库 -->
  20. <script src="//cdn.quilljs.com/1.3.6/quill.js"></script>
  21. <script>
  22. // 获取当前时间戳 减去 2024年1月1日的时间戳
  23. var timestamp = Date.parse(new Date()) - Date.parse(new Date('2024-01-01 00:00:00'));
  24. timestamp = timestamp / 1000;
  25. let id = getQueryString("id");
  26. // 获取编辑器内容
  27. if (id) {
  28. let res = requestUtil.sync("https://web_history.tianyunperfect.cn/content/select?id=" + id, "get");
  29. if (res.code == 200) {
  30. if (res.res.length > 0) {
  31. document.getElementById("editor").innerHTML = res.res[0].content;
  32. }
  33. }
  34. } else {
  35. // 重定向
  36. location.href = requestUtil.buildUrl(location.href, {"id": timestamp})
  37. }
  38. const quill = new Quill('#editor', {
  39. theme: 'snow', // 指定使用的主题
  40. modules: {
  41. toolbar: false
  42. }
  43. });
  44. // 获取编辑器内容
  45. function getContent() {
  46. const content = quill.root.innerHTML;
  47. console.log(content);
  48. }
  49. function sysncContent() {
  50. let content = quill.root.innerHTML;
  51. let res = requestUtil.sync("https://web_history.tianyunperfect.cn/content/updateOrInsert", "post", {
  52. "id": id,
  53. "content": content
  54. });
  55. if (res.code == 200) {
  56. console.log("同步成功");
  57. }
  58. }
  59. let debounce1 = debounce(sysncContent, 1000);
  60. // 监听编辑器内容变化
  61. quill.on('text-change', function (delta, oldDelta, source) {
  62. // delta - 表示变化的内容
  63. // oldDelta - 表示变化前的内容
  64. // source - 表示触发变化的原因,如'user'(用户输入)或'silent'(编程方式修改)
  65. // 在这里执行你想要的操作,比如更新数据或执行其他逻辑
  66. console.log("内容发生变化");
  67. // 防抖 1秒内同步一次
  68. debounce1();
  69. });
  70. </script>
  71. </body>
  72. </html>