Parcourir la source

禁止文本选择,禁止使用ctrl,meta,alt

Michael Wang il y a 6 ans
Parent
commit
e55006b776
2 fichiers modifiés avec 17 ajouts et 0 suppressions
  1. 12 0
      src/features/OnlineExam/Examing/TextQuestionView.vue
  2. 5 0
      src/styles/global.css

+ 12 - 0
src/features/OnlineExam/Examing/TextQuestionView.vue

@@ -60,6 +60,7 @@
         </div>
         <div
           ref="answerDiv"
+          @keydown="disableCtrl"
           :contenteditable="true"
           v-html="studentAnswer"
           v-once
@@ -115,6 +116,14 @@ export default {
   methods: {
     ...mapMutations(["updateExamQuestion"]),
     ...mapGetters(["examShouldShowAnswer"]),
+    disableCtrl(e) {
+      if (e.ctrlKey || e.metaKey || e.altKey) {
+        // .ctrlKey tells that ctrl key was pressed.
+        e.preventDefault();
+        return false;
+      }
+      return true;
+    },
     textCopy() {
       var selElm = getSelection();
       var selRange = selElm.getRangeAt(0);
@@ -175,6 +184,9 @@ export default {
           .replace(/<sub><\/sub>/gi, "")
           .replace(/<script/gi, "&lt;script")
           .replace(/script>/gi, "script&gt;");
+        // .replace(/</gi, "&lt;")
+        // .replace(/>/gi, "&gt;")
+        // .replace(/&lt;div&gt;&lt;br&gt;&lt;\/div&gt;/gi, "<div><br></div>");
       }
       if (realAnswer !== this.examQuestion.studentAnswer) {
         this.updateExamQuestion({

+ 5 - 0
src/styles/global.css

@@ -1,3 +1,8 @@
+body :not(textarea) {
+  user-select: none;
+  cursor: default;
+}
+
 .qm-primary-text {
   font-size: 14px;
   font-weight: normal;