微信瀏覽器下document.execCommand("insertHTML", false/true, 自己傳遞過來的值)不生效

前言

  1. 功能:用戶往一個多行文本控件(textarea)中粘貼內容,但粘貼時會進行一些判斷,比如去掉內容中的html,或者去掉空字符,或者不處理直接粘貼。

  2. 處理流程:

  • 監聽paste事件,並阻止其默認行爲,然後獲取剪切板中的內容(e.clipboardData.getData(‘text/plain’))
  • 彈框,讓用戶選擇哪種處理方式
  • 將處理後的內容放到多行文本中
  1. bug
    谷歌(76.0)、360安全瀏覽器(63.0.**)可以正常運行
    微信pc端內置的瀏覽器以及蘋果手機中的微信瀏覽器,粘貼後,文本框中未出現內容

分析

查閱了一些資料,谷歌瀏覽器有些版本確實沒有很好的支持document.execCommand()的某些功能;

不支持爲false,支持爲true,不兼容好像是可以拋錯的

推薦一些工具:判斷微信內置瀏覽器內核

解決

由於判斷的邏輯屬於一個公共函數,因此從公共函數中傳遞出處理後的字符串,再判斷是否支持這個方法。如果不支持,就將多行文本的value等於處理後的字符串就可以了。

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章