1. <nobr id="easjo"><address id="easjo"></address></nobr>

      <track id="easjo"><source id="easjo"></source></track>
      1. 
        

      2. <bdo id="easjo"><optgroup id="easjo"></optgroup></bdo>
      3. <track id="easjo"><source id="easjo"><em id="easjo"></em></source></track><option id="easjo"><span id="easjo"><em id="easjo"></em></span></option>
          貴州做網站公司
          貴州做網站公司~專業!靠譜!
          10年網站模板開發經驗,熟悉國內外開源網站程序,包括DEDECMS,WordPress,ZBlog,Discuz! 等網站程序,可為您提供網站建設,網站克隆,仿站,網頁設計,網站制作,網站推廣優化等服務。我們專注高端營銷型網站,企業官網,集團官網,自適應網站,手機網站,網絡營銷,網站優化,網站服務器環境搭建以及托管運維等。為客戶提供一站式網站解決方案?。?!

          vue2 renrne 引入tinymce[通俗易懂]

          來源:互聯網轉載 時間:2024-01-29 07:40:30

          tinymce

          1.引入和原始使用

          下載 地址 : https://www.tiny.cloud/get-tiny/self-hosted/

          語言包 地址: https://www.tiny.cloud/get-tiny/language-packages/

          # vue2.0版本應該使用npm install --save "@tinymce/tinymce-vue@^3"# vue3.0版本應該使用npm install --save "@tinymce/tinymce-vue@^4"# 再運行 npm install tinymce -S

          安裝之后,在 node_modules 中找到 tinymce/skins 目錄,然后將 skins 目錄拷貝到 static 目錄下

          結構 如: static

          tinymce
          skins
          zh_CN.js

          在頁面中引入以下文件

          import tinymce from "tinymce/tinymce";import "tinymce/themes/silver/theme";import Editor from "@tinymce/tinymce-vue";import "tinymce/icons/default/icons";import "tinymce/plugins/media"; // 插入視頻插件import "tinymce/plugins/image";import "tinymce/plugins/link";import "tinymce/plugins/code";import "tinymce/plugins/table";import "tinymce/plugins/lists";import "tinymce/plugins/contextmenu";import "tinymce/plugins/wordcount";import "tinymce/plugins/colorpicker";import "tinymce/plugins/textcolor";

          tinymce-vue 是一個組件,需要在 components 中注冊,

           components: { Editor },

          然后直接使用

          <Editor  v-model="tinymceHtml" :init="editorInit"></Editor>

          編輯器需要一個 skin 才能正常工作,所以要設置一個 skin_url 指向之前復制出來的 skin 文件

          editorInit: {    language_url: '/static/tinymce/zh_CN.js',    language: 'zh_CN',    skin_url: '/static/tinymce/skins/ui/oxide', // skin路徑    height: 300, // 編輯器高度    branding: false, // 是否禁用“Powered by TinyMCE”    menubar: true, // 頂部菜單欄顯示    plugins: this.plugins,    toolbar: this.toolbar,}

          同時在 mounted 中也需要初始化一次:

          mounted (){tinymce.init({});},

          如果在這里傳入上面的 init 對象,并不能生效,但什么參數都不傳也會報錯,所以這里傳入一個空對象

          https://blog.csdn.net/zjiang1994/article/details/79880806

          https://blog.csdn.net/zjiang1994/article/details/79856058

          完成了上面的初始化之后,就已經能正常運行編輯器了,但只有一些基本功能

          tinymce 通過添加插件 plugins 的方式來添加功能

          比如要添加一個上傳圖片的功能,就需要用到 image 插件,添加超鏈接需要用到 link 插件

          <template>  <p class='tinymce'>    <h1>tinymce</h1>    <editor id='tinymce' v-model='tinymceHtml' :init='init'></editor>    <p v-html='tinymceHtml'></p>  </p></template><script>import tinymce from "tinymce/tinymce";import "tinymce/themes/silver/theme";import Editor from "@tinymce/tinymce-vue";import "tinymce/icons/default/icons";import "tinymce/plugins/media"; // 插入視頻插件import "tinymce/plugins/image";import "tinymce/plugins/link";import "tinymce/plugins/code";import "tinymce/plugins/table";import "tinymce/plugins/lists";import "tinymce/plugins/contextmenu";import "tinymce/plugins/wordcount";import "tinymce/plugins/colorpicker";import "tinymce/plugins/textcolor";  export default {  name: 'tinymce',  data () {    return {      tinymceHtml: '請輸入內容',      init: {          language_url: '/static/tinymce/zh_CN.js',          language: 'zh_CN',          skin_url: '/static/tinymce/skins/ui/oxide', // skin路徑          content_css:'/static/tinymce/skins/content/default/content.css',          height: 300, // 編輯器高度          branding: false, // 是否禁用“Powered by TinyMCE”          menubar: true, // 頂部菜單欄顯示          font_formats: '微軟雅黑=Microsoft YaHei,Helvetica Neue,PingFang SC,sans-serif;蘋果蘋方=PingFang SC,Microsoft YaHei,sans-serif;宋體=simsun,serif',          fontsize_formats:'12px 14px 16px 18px 20px 22px 24px 26px 28px 30px 32px 34px 36px 38px 40px 50px 60px 70px 80px 90px 100px 120px 140px 160px 180px 200px',          plugins: 'link lists image code table colorpicker textcolor wordcount contextmenu',          toolbar:'bold italic underline strikethrough | fontsizeselect | forecolor backcolor | alignleft aligncenter alignright alignjustify | bullist numlist | outdent indent blockquote | undo redo | link unlink image code | removeformat',      }    }  },  mounted () {    tinymce.init({})  },  components: {Editor}}</script>

          但是當富文本在某一個彈窗上使用時, 工具欄會出現下拉選擇時的層級比彈窗的小,所以,選項會被彈窗遮擋。 而解決這個問題,需要把工具欄的下拉框的層級提高, 找到static/tinymce/skins/ui/oxide/skin.min.css文件 把class名為tox-tinymce-aux的第一個的z-index屬性變大即可

          tinymce 提供了 images_upload_url 等 api 讓用戶配置上傳圖片的相關參數

          但為了在不麻煩后端的前提下適配自家的項目,還是得用 images_upload_handler 來自定義一個上傳方法

               images_upload_handler: (blobInfo, success, failure) => {       // const img = 'data:image/jpeg;base64,' + blobInfo.base64();      // success(img);       this.handleImgUpload(blobInfo, success, failure);     }

          這個方法會提供三個參數:blobInfo, success, failure

          其中 blobinfo 是一個對象,包含上傳文件的信息

          successfailure 是函數,上傳成功的時候向 success 傳入一個圖片地址,失敗的時候向 failure 傳入報錯信息

          handleImgUpload (blobInfo, success, failure) {      // 上傳的文件信息        let fd = new FormData();        fd.append("file", blobInfo.blob());        fd.append("type","tinymec")        this.$http({          url: this.$http.adornUrl(            "/localUpload/uploadForType"           ),          method: "post",          data: fd,          headers: {            "Content-Type":              "multipart/form-data;boundary=" + new Date().getTime(),            "token": this.$cookie.get('token')          },        }).then(({ data }) => {          if (data && data.code === 0) {            this.$message({              message: data.path + ",操作成功",              type: "success",              duration: 1500,              onClose: () => {                 success(data.path)              },            });          } else {            failure('error')          }        });}

          2.模塊封裝

          <template>  <Editor  v-model="editHtml" :init="editorInit" @change="changeEdit" ></Editor></template><script>import tinymce from "tinymce/tinymce";import "tinymce/themes/silver/theme";import Editor from "@tinymce/tinymce-vue";import "tinymce/icons/default/icons";import "tinymce/plugins/media"; // 插入視頻插件import "tinymce/plugins/image";import "tinymce/plugins/link";import "tinymce/plugins/code";import "tinymce/plugins/table";import "tinymce/plugins/lists";import "tinymce/plugins/contextmenu";import "tinymce/plugins/wordcount";import "tinymce/plugins/colorpicker";import "tinymce/plugins/textcolor";export default {  props: {    value: {      //父組件傳進來的默認值      default: "",    },  },  components: { Editor },  Myeditmounted() {    tinymce.init({});  },  created() {},  data() {    return {      editHtml: "",      editorInit: {        language_url: "/static/tinymce/zh_CN.js",        language: "zh_CN",        skin_url: "/static/tinymce/skins/ui/oxide", // skin路徑        content_css: "/static/tinymce/skins/content/default/content.css",        height: 300, // 編輯器高度        branding: false, // 是否禁用“Powered by TinyMCE”        menubar: true, // 頂部菜單欄顯示        font_formats:          "微軟雅黑=Microsoft YaHei,Helvetica Neue,PingFang SC,sans-serif;蘋果蘋方=PingFang SC,Microsoft YaHei,sans-serif;宋體=simsun,serif",        fontsize_formats:          "12px 14px 16px 18px 20px 22px 24px 26px 28px 30px 32px 34px 36px 38px 40px 50px 60px 70px 80px 90px 100px 120px 140px 160px 180px 200px",        plugins:          "link lists image code table colorpicker textcolor wordcount contextmenu",        toolbar:          "bold italic underline strikethrough | fontsizeselect | forecolor backcolor | alignleft aligncenter alignright alignjustify | bullist numlist | outdent indent blockquote | undo redo | link unlink image code | removeformat",        images_upload_handler: (blobInfo, success, failure) => {          // const img = "data:image/jpeg;base64," + blobInfo.base64();          // success(img);           this.handleImgUpload(blobInfo, success, failure);                  },      },    };  },  watch: {    value: {      //data改變的時候同步到子組件      deep: true,      handler(value) {        this.editHtml = value;        // console.log(value);      },          },    editHtml: {      //data改變的時候同步到子組件      deep: true,      handler(val) {        this.$emit('update:value', val);        console.log(val);        // console.log(this.value);      },          },  },  methods: {    handleImgUpload (blobInfo, success, failure) {      // 上傳的文件信息        let fd = new FormData();        fd.append("file", blobInfo.blob());        fd.append("type","tinymec")        this.$http({          url: this.$http.adornUrl(            "/file/uploadForType"           ),          method: "post",          data: fd,          headers: {            "Content-Type":              "multipart/form-data;boundary=" + new Date().getTime(),            "token": this.$cookie.get('token')          },        }).then(({ data }) => {          if (data && data.code === 0) {            this.$message({              message: data.path + ",操作成功",              type: "success",              duration: 1500,              onClose: () => {                 success(data.path)              },            });          } else {            failure('error')          }        });},    changeEdit(){        console.log(1111);    },  },};</script><style></style><custom1>  This could be e.g. documentation for the component.</custom1>

          155091.html

          標簽:renrnewang-

          網絡推廣與網站優化公司(網絡優化與推廣專家)作為數字營銷領域的核心服務提供方,其價值在于通過技術手段與策略規劃幫助企業提升線上曝光度、用戶轉化率及品牌影響力。這...

          在當今數字化時代,公司網站已成為企業展示形象、傳遞信息和開展業務的重要平臺。然而,對于許多公司來說,網站建設的價格是一個關鍵考量因素。本文將圍繞“公司網站建設價...

          在當今的數字化時代,企業網站已成為企業展示形象、吸引客戶和開展業務的重要平臺。然而,對于許多中小企業來說,高昂的網站建設費用可能會成為其發展的瓶頸。幸運的是,隨...

          北京到銀川的所有火車?北京到銀川有兩趟車,其中一趟是過路車。1.K177北京西到銀川。西站發車時間為下午13:25。硬座143(全價),臥鋪262。它總共運行了大約19個小時。值得一提的是,這趟車的目的地是直達銀川,到達時間是第二天早上8: 30左右。2.K43這班車分A、b兩種,每天從嘉峪關、蘭州出發,到達目的地第二天就到了蘭州(嘉峪關),但不管怎么說,都是去銀川的。北京站發車時間12: 05,...

          ip地址顯示異地怎么解決?很有可能是號被盜,接觸把密碼該了,要是我還是跨省登陸賬號。那是很可能主要帶的無線網,首先我要告訴你吧無線網是有追蹤IP的,他會不自動的你把你IP中改其他地方(你在專門買查找IP時,都會顯示是本地,但用上的地方會顯示就會是外地),具體詳細改的地方是無線網重新發行者設置的,通常是而且怕被人修改和使用。QQ登錄時IP地址為啥總在變?畢竟你在其它地方也登陸后過這個號,所有直接登陸...

          100萬日元在日本人眼里算多嗎?很多人認為100萬日元兌換成大約是6萬元,應該不是很多錢。這只是一個完全錯誤的想法。我也是這么想的,因為日本收入高,物價低。但是,當你接觸到年輕一代的日本人,和日劇的情節進行交叉對比,你會發現,實際的100萬日元真的不是一筆小數目。首先,日本人不 他們沒有像人那樣存錢買房的習慣,所以每個月花在租房上的錢占了他們收入的很大一部分。其次,日本服務的價格都很高,每個月想省...

          TOP
          国产初高中生视频在线观看|亚洲一区中文|久久亚洲欧美国产精品|黄色网站入口免费进人
          1. <nobr id="easjo"><address id="easjo"></address></nobr>

              <track id="easjo"><source id="easjo"></source></track>
              1. 
                

              2. <bdo id="easjo"><optgroup id="easjo"></optgroup></bdo>
              3. <track id="easjo"><source id="easjo"><em id="easjo"></em></source></track><option id="easjo"><span id="easjo"><em id="easjo"></em></span></option>