久久亚洲成a人片熟女精品色一区二区三区|国产精品视频第一精品视频|av天堂热无码手机版|亚洲?v无码久久无遮挡|国产精品偷伦视频免费观看国产|麻豆国产自产精品丰满熟妇|av无码av不卡一区二区|久久亚洲精品中文字

ARTICLE DETAIL

資訊詳情

深耕商務(wù)建站與企業(yè)官網(wǎng)運(yùn)營(yíng)的一線實(shí)戰(zhàn)洞察。

Word粘貼到umeditor格式錯(cuò)亂?前端攔截+后端凈化方案詳解

Word粘貼到umeditor格式錯(cuò)亂?前端攔截+后端凈化方案詳解 管理著一批芯片制造產(chǎn)業(yè)鏈的垂直資訊站最讓我頭疼的從來(lái)不是服務(wù)器負(fù)載反而是編輯們每天都會(huì)罵人的那個(gè)操作——從Word里復(fù)制一篇產(chǎn)品規(guī)格說(shuō)明粘貼到umeditor里點(diǎn)保存然后前臺(tái)樣式就亂了。段落間距忽大忽小字號(hào)時(shí)而12px時(shí)而16px表格第一列像被人拽了一把空行多到能跑馬圖片下面的注釋字體還帶著Word特有的那種藍(lán)色。這兩年我陸續(xù)把站群后臺(tái)的富文本編輯器統(tǒng)一收斂到umeditor就是為了解決這個(gè)Word導(dǎo)入兼容性問(wèn)題前前后后踩了不少坑也沉淀了一套相對(duì)完整的處理方案。這篇就把整個(gè)處理過(guò)程拆開(kāi)講透——包括為什么會(huì)亂、前端攔截清洗怎么做、后端為什么還得兜一層底。如果你也在運(yùn)營(yíng)類(lèi)似的行業(yè)網(wǎng)站群編輯團(tuán)隊(duì)里有人天天拿Word粘貼文檔或者你自己被編輯器里那些甩不掉的Office垃圾標(biāo)簽折磨過(guò)這篇文章應(yīng)該能讓你少走好幾天的彎路。我會(huì)把代碼、配置、踩坑點(diǎn)都直接放出來(lái)你可以照著抄。1. 編輯部的日常從Word到umeditor的一場(chǎng)格式災(zāi)難先說(shuō)說(shuō)我們這邊的實(shí)際場(chǎng)景。站群覆蓋了半導(dǎo)體材料、設(shè)備、封裝測(cè)試、晶圓制造工藝幾個(gè)細(xì)分方向每個(gè)站點(diǎn)都有獨(dú)立的欄目和模板但后臺(tái)都是同一套內(nèi)容管理系統(tǒng)編輯器統(tǒng)一用的umeditor。內(nèi)容團(tuán)隊(duì)每天要發(fā)的東西特別雜展會(huì)新聞稿、廠商提供的產(chǎn)品參數(shù)表、技術(shù)白皮書(shū)的摘錄、專(zhuān)家講座的紀(jì)要這些素材十有八九都是Word文檔的形式躺在編輯的電腦里。編輯的工作流很固定打開(kāi)WordCtrlA全選CtrlC復(fù)制回到瀏覽器后臺(tái)CtrlV粘貼到umeditor的編輯區(qū)然后點(diǎn)發(fā)布。問(wèn)題就出在這個(gè)CtrlV上。粘貼進(jìn)去的瞬間編輯區(qū)看著好像是正常的——段落有縮進(jìn)標(biāo)題有加粗表格線條都在。真正崩潰的是在預(yù)覽和發(fā)布之后。我匯總過(guò)編輯反饋的最常見(jiàn)變形類(lèi)型段落行距變得忽寬忽窄。同一篇文章里有的段落行距是正常值有的段落卻像開(kāi)了倍速一樣松垮因?yàn)閃ord給每個(gè)段落都寫(xiě)死了line-height。字號(hào)混戰(zhàn)。正文里的中文字變成12px英文和數(shù)字卻變成10.5pt甚至同一句話里出現(xiàn)兩種字號(hào)。表格完全失控。列寬被Word的絕對(duì)寬度鎖死粘貼到窄欄目的頁(yè)面上直接撐破版面某些單元格的背景色消失邊框線粗細(xì)不一。莫名其妙的空行。Word的o:p標(biāo)簽在編輯器里渲染成空段落一篇文章貼下來(lái)多出十幾二十個(gè)空白行。字體顏色被鎖定。原文里沒(méi)有特別標(biāo)色的文字到了前臺(tái)卻變成深灰色或者藍(lán)色。最麻煩的是這些問(wèn)題在umeditor的源代碼模式里看不太出來(lái)——HTML代碼里全是stylemso-line-height-rule:exactly; line-height:...;這種Office專(zhuān)有樣式混在一堆正常標(biāo)簽里普通人肉眼根本找不出問(wèn)題。但瀏覽器一解析這些樣式就實(shí)打?qū)嵉貕褐屏苏军c(diǎn)模板里的CSS。這個(gè)階段我試過(guò)兩種表面功夫一是讓編輯粘貼到umeditor后用自帶的清除格式按鈕二是切到純文本模式重新排版。事實(shí)證明都不治本。幾百篇文章的月度產(chǎn)能編輯不可能每篇都手動(dòng)刷一遍格式純文本模式等于把Word里的加粗、列表、表格全廢了排版成本直接翻倍。所以必須從源頭攔截。2. 剪貼板里的偽HTML問(wèn)題為什么出在源頭要解決問(wèn)題得先搞清楚一個(gè)反直覺(jué)的事實(shí)——從Word里復(fù)制出來(lái)的東西根本就不是干凈的文本而是一段被Word重新序列化過(guò)的專(zhuān)用HTML片段。Windows系統(tǒng)在復(fù)制操作發(fā)生時(shí)會(huì)把內(nèi)容按多種格式同時(shí)放進(jìn)剪貼板其中既包括純文本text/plain也包括HTML片段text/html。Word存放在text/html里的內(nèi)容和我們平時(shí)手寫(xiě)的HTML完全是兩種風(fēng)格。我截取過(guò)一段從Word復(fù)制出來(lái)的剪貼板HTML簡(jiǎn)化之后長(zhǎng)這樣!--[if gte mso 9]xml w:WordDocument w:ViewNormal/w:View w:Zoom0/w:Zoom w:TrackMovesfalse/w:TrackMoves /w:WordDocument /xml![endif]-- p classMsoNormal stylemso-pagination:widow-orphan; line-height:150%; span stylefont-size:10.5pt; font-family:Arial,sans-serif; mso-ascii-font-family:Arial; 芯片制造的核心環(huán)節(jié)包括 /span span langEN-US stylefont-size:10.5pt; font-family:Arial,sans-serif; CMP /span o:p/o:p /p這里面有幾類(lèi)東西是編輯器根本不需要的!--[if gte mso 9]...![endif]--Word的條件注釋專(zhuān)門(mén)給Office程序讀的元信息。w:WordDocument、w:View這一整組w:前綴標(biāo)簽是Word的XML命名空間瀏覽器不認(rèn)但會(huì)殘留在DOM里。o:pWord的空段落占位符在頁(yè)面上渲染成空白行。mso-前綴的CSS聲明例如mso-pagination、mso-ascii-font-family它們只在Word自己的排版引擎里有意義到了瀏覽器里要么被忽略、要么產(chǎn)生奇怪的副作用。classMsoNormalWord內(nèi)置樣式類(lèi)名會(huì)在后臺(tái)CSS表里被重新定義。每個(gè)字符被包在獨(dú)立的span里一個(gè)句子拆成三四層嵌套span。如果用瀏覽器開(kāi)發(fā)者工具去看umeditor粘貼后的DOM你會(huì)發(fā)現(xiàn)這些標(biāo)簽全被原樣塞進(jìn)了正文區(qū)。為什么因?yàn)閡meditor走的是所見(jiàn)即所得的老路子你粘貼什么它就是盡量還原什么。它內(nèi)部對(duì)粘貼內(nèi)容只是做了一遍簡(jiǎn)單的HTML標(biāo)簽白名單過(guò)濾把script、iframe這類(lèi)危險(xiǎn)標(biāo)簽剔掉但不會(huì)去解析、重建DOM結(jié)構(gòu)更不會(huì)主動(dòng)清理Office特有的樣式和注釋。所以Word給什么它就原樣插進(jìn)去。這也就能解釋為什么格式會(huì)亂——站點(diǎn)的前臺(tái)模板統(tǒng)一用了p { line-height: 1.6 }這樣的規(guī)則但Word粘貼進(jìn)來(lái)的段落自帶line-height:150%的內(nèi)聯(lián)樣式按CSS的優(yōu)先級(jí)規(guī)則內(nèi)聯(lián)樣式直接把模板規(guī)則干掉了。大部分情況下前臺(tái)展示用的樣式表和你正文里殘留的Office內(nèi)聯(lián)樣式根本不在同一個(gè)設(shè)計(jì)體系里互相打架就是必然的。所以我得出的第一個(gè)結(jié)論是靠編輯器自帶的清除格式按鈕只能解決一小部分問(wèn)題必須從兩個(gè)環(huán)節(jié)下手——前端在粘貼事件發(fā)生時(shí)主動(dòng)攔截并清洗剪貼板里的HTML后端在保存入庫(kù)前做第二層凈化。這兩個(gè)環(huán)節(jié)缺一不可。3. 前端攔截清洗把Office垃圾標(biāo)簽攔在發(fā)布之前前端攔截的思路不復(fù)雜監(jiān)聽(tīng)編輯器的paste事件獲取剪貼板里的text/html數(shù)據(jù)交給一個(gè)專(zhuān)門(mén)的清洗函數(shù)處理處理完再手動(dòng)塞回編輯器。關(guān)鍵是清洗規(guī)則要做到既不漏掉Office垃圾又不過(guò)度殺傷原文格式。3.1 攔截粘貼事件與數(shù)據(jù)獲取umeditor實(shí)例化之后可以直接拿它的DOM容器綁定paste監(jiān)聽(tīng)。多數(shù)現(xiàn)代瀏覽器都支持ClipboardEvent.clipboardData我們可以靠它取到兩種格式的數(shù)據(jù)editor.addListener(ready, function () { var container editor.container; container.addEventListener(paste, function (e) { var clipboardData e.clipboardData || window.clipboardData; var html ; var text ; if (clipboardData) { html clipboardData.getData(text/html); text clipboardData.getData(text/plain); } // 沒(méi)有HTML內(nèi)容說(shuō)明是純文本粘貼直接放行 if (!html) { return; } e.preventDefault(); // 有些瀏覽器在preventDefault之后剪貼板數(shù)據(jù)會(huì)失效 // 所以把后續(xù)處理包進(jìn)setTimeout里等數(shù)據(jù)穩(wěn)定再取 setTimeout(function () { var cleanHtml cleanWordHtml(html); editor.setContent(cleanHtml, true); }, 10); }); });這里有個(gè)容易被忽略的坑如果你在e.preventDefault()之后立刻去讀clipboardData個(gè)別瀏覽器尤其是老版Edge和部分舊Chrome內(nèi)核會(huì)返回空字符串因?yàn)槟J(rèn)行為被中斷后剪貼板的訪問(wèn)權(quán)限也跟著變了。穩(wěn)妥的做法是先把html讀出來(lái)再阻止默認(rèn)行為或者像上面代碼里那樣把清洗邏輯放進(jìn)setTimeout里延后執(zhí)行。3.2 清洗函數(shù)的具體實(shí)現(xiàn)清洗函數(shù)cleanWordHtml的核心目標(biāo)很明確刪除Office專(zhuān)屬標(biāo)記保留語(yǔ)義化標(biāo)簽剝離危險(xiǎn)屬性。我把完整實(shí)現(xiàn)放出來(lái)你可以直接復(fù)制到站群的公共JS里function cleanWordHtml(html) { if (!html) return ; // 1. 移除office XML聲明、條件注釋、所有無(wú)用標(biāo)簽 html html.replace(/!--[\s\S]*?--/g, ) // 去注釋 .replace(/xml[\s\S]*?\/xml/gi, ) // 去xml塊 .replace(/\/?o:p[^]*/gi, ) // 去o:p .replace(/\/?v:[^]*/gi, ) // 去v:開(kāi)頭的VML .replace(/\/?w:[^]*/gi, ) // 去w:開(kāi)頭的Word標(biāo)記 .replace(/\/?st1:[^]*/gi, ) // 去st1:開(kāi)頭的SmartTag .replace(/!\[if[\s\S]*?\]/g, ); // 去條件注釋 // 2. 創(chuàng)建DOM解析器在內(nèi)存里操作避免正則匹配不到嵌套結(jié)構(gòu) var doc new DOMParser().parseFromString(html, text/html); var root doc.body; // 3. 處理style屬性移除mso開(kāi)頭和css語(yǔ)言標(biāo)記 var all root.querySelectorAll(*); for (var i 0; i all.length; i) { var el all[i]; var style el.getAttribute(style); if (style) { var clean style.split(;) .map(function (s) { return s.trim(); }) .filter(function (s) { if (s ) return false; // 過(guò)濾掉所有mso-屬性、lang屬性、font-family中的mso字體 if (/^mso-/.test(s)) return false; if (/^css-language/.test(s)) return false; return true; }) .join(;); if (clean) { el.setAttribute(style, clean); } else { el.removeAttribute(style); } } // 4. 去掉word留下的語(yǔ)言標(biāo)記 if (el.getAttribute(lang) !el.textContent.trim()) { el.removeAttribute(lang); } // 5. 清理空的span和p if (el.tagName SPAN !el.getAttribute(style) !el.getAttribute(class) el.children.length 0 el.textContent.trim() ) { el.parentNode.removeChild(el); } if (el.tagName P el.children.length 0 el.textContent.trim() ) { el.parentNode.removeChild(el); } } // 6. 移除class里的MsoNormal等Word內(nèi)置類(lèi)名 var allWithClass root.querySelectorAll([class]); for (var j 0; j allWithClass.length; j) { var cls allWithClass[j]; var classNames cls.getAttribute(class).split(/\s/) .filter(function (name) { return name !/^Mso/.test(name); }); if (classNames.length) { cls.setAttribute(class, classNames.join( )); } else { cls.removeAttribute(class); } } // 7. 遞歸清理嵌套的font標(biāo)簽去掉face/color殘留 root.querySelectorAll(font).forEach(function (f) { var parent f.parentNode; while (f.firstChild) { parent.insertBefore(f.firstChild, f); } parent.removeChild(f); }); // 8. 序列化回字符串 return root.innerHTML; }這套清洗做完Word里面的MsoNormal、mso-line-height-rule、o:p、langEN-US這類(lèi)東西基本絕跡了而加粗、斜體、列表、表格、圖片這些語(yǔ)義化標(biāo)簽都能保住。我強(qiáng)烈建議用DOMParser做解析而不是純正則——Word生成的HTML嵌套很深純正則在復(fù)雜嵌套下很容易誤傷DOM解析更可靠。3.3 保留格式的取舍策略清洗做太過(guò)也有問(wèn)題這是我在站群實(shí)際運(yùn)營(yíng)中逐步調(diào)整出來(lái)的平衡。一開(kāi)始我圖省事直接取text/plain粘貼結(jié)果編輯炸了——從Word復(fù)制的表格全沒(méi)了變成一行行tab分隔的純文本。后來(lái)改成全清洗、只留語(yǔ)義標(biāo)簽的方案才算真正可落地。我這里說(shuō)的保留范圍是這樣的p、h1~h6、ul、ol、li、dl、dt、dd這些結(jié)構(gòu)標(biāo)簽原樣保留。strong、em、b、i、u、s這些基礎(chǔ)行內(nèi)格式保留。table、tr、td、th、thead、tbody表格結(jié)構(gòu)保留但剝掉大部分內(nèi)聯(lián)樣式讓前臺(tái)模板的表格樣式接管。img保留但要額外處理后面踩坑章節(jié)會(huì)說(shuō)。a標(biāo)簽保留href和title但去掉target——站群內(nèi)的文章鏈接統(tǒng)一要求新窗口打開(kāi)規(guī)則由模板決定。再?gòu)?qiáng)調(diào)一點(diǎn)清洗不是越干凈越好。如果站點(diǎn)模板依賴于某種特定的段落格式約定比如技術(shù)參數(shù)表固定兩列過(guò)度刪除樣式會(huì)導(dǎo)致前臺(tái)表格沒(méi)邊框沒(méi)間距。建議清洗函數(shù)做成參數(shù)可配置的像上面代碼里的filter函數(shù)將來(lái)可以根據(jù)站點(diǎn)模板動(dòng)態(tài)調(diào)整。4. 后端HTML凈化為站群內(nèi)容做雙保險(xiǎn)前端攔截解決了90%的日常粘貼問(wèn)題但兩條漏網(wǎng)路徑依然存在一是某些低版本瀏覽器或者內(nèi)核特殊的國(guó)產(chǎn)瀏覽器剪貼板事件拿不到text/html前端清洗根本不會(huì)觸發(fā)二是編輯可能會(huì)從郵件客戶端、網(wǎng)頁(yè)、PDF里復(fù)制內(nèi)容這些來(lái)源同樣可能帶來(lái)非語(yǔ)義化的HTML甚至夾帶XSS攻擊代碼。所以我在站群的每個(gè)站點(diǎn)根目錄下都部署了一層后端HTML凈化邏輯統(tǒng)一放在公共函數(shù)庫(kù)里。4.1 為什么不能用簡(jiǎn)單strip_tags很多人覺(jué)得后端凈化就是strip_tags一下危險(xiǎn)標(biāo)簽全沒(méi)了順便把垃圾也清了。這個(gè)思路有個(gè)致命問(wèn)題strip_tags只按標(biāo)簽名刪不管屬性里的危險(xiǎn)內(nèi)容。Word粘貼產(chǎn)生的樣式里面雖然不含腳本但如果哪個(gè)編輯手滑復(fù)制了一段帶onerror的imgstrip_tags是攔不住的。加上站群內(nèi)容會(huì)被搜索引擎大量收錄萬(wàn)一中招的都是公開(kāi)頁(yè)面影響面會(huì)很快擴(kuò)散。所以后端凈化我用的方案是PHP環(huán)境下的HTMLPurifier它對(duì)屬性、協(xié)議、CSS聲明都做白名單校驗(yàn)比單純strip_tags可靠得多。4.2 HTMLPurifier的關(guān)鍵配置我們的后臺(tái)是PHP所以在composer里引入了HTMLPurifier封裝成統(tǒng)一函數(shù)purify_html($dirty_html)?php require_once __DIR__ . /vendor/autoload.php; use HTMLPurifier; use HTMLPurifier_Config; function purify_html($dirtyHtml) { $config HTMLPurifier_Config::createDefault(); // 允許的標(biāo)簽 $config-set(HTML.Allowed, p,br,strong,em,u,s,ul,ol,li,blockquote,. h2,h3,h4,h5,h6,. table[class],thead,tbody,tr,td[colspan|rowspan],th[colspan|rowspan],. img[src|alt|width|height],a[href|title], . code,pre ); // 允許的屬性 $config-set(HTML.AllowedAttributes, *.class,img.src,img.alt,img.width,img.height,a.href,a.title); // 托管協(xié)議配置防止javascript:偽協(xié)議 $config-set(URI.AllowedSchemes, [http true, https true, mailto true]); // 關(guān)閉embed/object堅(jiān)決不允許Flash時(shí)代的老玩法 $config-set(HTML.SafeObject, false); $config-set(HTML.SafeEmbed, false); // CSS白名單只留字體基礎(chǔ)屬性和表格布局相關(guān) $config-set(CSS.AllowedProperties, font-weight,font-style,text-decoration,text-align,. width,height,border-collapse,vertical-align,background-color); // 如果正文里帶過(guò)大的內(nèi)聯(lián)樣式就不需要了直接關(guān)掉style $config-set(CSS.AllowTricky, false); $purifier new HTMLPurifier($config); $cleanHtml $purifier-purify($dirtyHtml); // 清理過(guò)長(zhǎng)的空段落Word粘貼經(jīng)常產(chǎn)生連續(xù)多個(gè)pbr/p $cleanHtml preg_replace(#(pbr/?\s*/p){2,}#i, pbr/p, $cleanHtml); return $cleanHtml; }這層凈化解決的核心問(wèn)題不是格式——格式是前端的事——而是安全兜底和HTML合規(guī)性。HTMLPurifier會(huì)把所有不被允許的標(biāo)簽、屬性、CSS聲明全丟掉輸出一個(gè)干凈、語(yǔ)義化、沒(méi)有XSS風(fēng)險(xiǎn)的HTML片段。站群的后臺(tái)保存接口統(tǒng)一調(diào)用這個(gè)函數(shù)保證入庫(kù)的每篇文章都經(jīng)過(guò)了白名單過(guò)濾。搞這塊的時(shí)候我踩了一個(gè)性能的坑某次編輯粘貼了一篇64頁(yè)的PDF轉(zhuǎn)Word文檔整段HTML文本有300多KBpurify跑了接近兩秒接口超時(shí)。后面我加了一層判斷如果strlen($dirtyHtml)超過(guò)200KB就先用mb_substr截?cái)嗟胶侠黹L(zhǎng)度再處理——其實(shí)這種超長(zhǎng)文本來(lái)就應(yīng)該拆成多段處理不該一次性塞進(jìn)編輯器。4.3 圖片的特殊處理服務(wù)器端的凈化還會(huì)順手處理一類(lèi)問(wèn)題Word粘貼的圖片經(jīng)常是base64編碼的內(nèi)嵌圖片HTML里長(zhǎng)這樣img srcdata:image/png;base64,iVBORw0KGgoAAAANSUhEUgA...這種圖片直接保存會(huì)把數(shù)據(jù)庫(kù)撐爆而且圖片無(wú)法被搜索引擎抓取訪問(wèn)量大的頁(yè)面還會(huì)拖慢加載速度。我建議在保存接口里做一個(gè)檢測(cè)凡是以data:image開(kāi)頭的src統(tǒng)一轉(zhuǎn)存到站群的CDN路徑生成一個(gè)新文件名再把src替換成真實(shí)URL。站群后臺(tái)如果用的對(duì)象存儲(chǔ)這一步也很好封裝。我后面再細(xì)說(shuō)這個(gè)先不急。5. 實(shí)測(cè)中的典型坑位與針對(duì)性修復(fù)方案上線后我觀察了編輯部?jī)芍芏嗟膶?shí)際使用情況大部分問(wèn)題確實(shí)消失了但又有幾個(gè)新坑冒出來(lái)。這些坑特別有代表性單獨(dú)列出來(lái)說(shuō)一下。5.1 表格粘貼后沒(méi)有邊框了前端清洗把Word表格內(nèi)聯(lián)樣式里的border、cellspacing等屬性全清掉了但站群前臺(tái)模板對(duì)表格的默認(rèn)樣式比較弱導(dǎo)致從Word粘貼過(guò)來(lái)的表格在前臺(tái)變成了隱形表格——有行列結(jié)構(gòu)就是看不到線。解決辦法不是在清洗里保留Word的邊框樣式而是在前臺(tái)模板的CSS里補(bǔ)上對(duì)table的默認(rèn)樣式.article-content table { width: 100%; border-collapse: collapse; margin: 16px 0; } .article-content th, .article-content td { border: 1px solid #ddd; padding: 8px 10px; }這樣不管是Word粘貼的表格還是編輯器手敲的表格都能獲得一套統(tǒng)一的視覺(jué)樣式。這比從Word里繼承一堆border-color:#7f9db9之類(lèi)的破碎樣式可靠得多。5.2 表格列寬撐破版面Word表格經(jīng)常給td寫(xiě)入width: 112px這種絕對(duì)像素值在站群窄欄里一旦列數(shù)多就必然溢出。我在項(xiàng)目里引入了一個(gè)簡(jiǎn)單的后處理用正則把所有width\d(\.\d)?和width: ?\d(\.\d)?px屬性刪掉然后給表格統(tǒng)一加上table-layout: auto讓瀏覽器根據(jù)內(nèi)容自動(dòng)分配列寬。// 前端清洗完成后對(duì)表格做一次性處理 function normalizeTables(rootNode) { var tables rootNode.querySelectorAll(table); for (var i 0; i tables.length; i) { tables[i].removeAttribute(width); tables[i].style.width 100%; tables[i].style.tableLayout auto; var cells tables[i].querySelectorAll(td, th); for (var j 0; j cells.length; j) { cells[j].removeAttribute(width); cells[j].removeAttribute(height); } } }這個(gè)處理建議放在清洗函數(shù)里最后一步執(zhí)行保證入庫(kù)內(nèi)容本身就是自適應(yīng)列寬的形態(tài)。5.3 圖片base64導(dǎo)致的存儲(chǔ)壓力這是最隱蔽的坑。編輯從Word里拖一張高清設(shè)備照片進(jìn)去umeditor界面上看到的是正常的圖片但源代碼模式里是一長(zhǎng)串base64字符串。三個(gè)月的站群運(yùn)營(yíng)下來(lái)數(shù)據(jù)庫(kù)體積漲了1.7倍排查半天才發(fā)現(xiàn)是粘貼圖片導(dǎo)致的。我先在umeditor配置里開(kāi)了catchRemoteImageEnable: true抓取遠(yuǎn)程圖片讓編輯器自動(dòng)把外鏈圖片拉取到服務(wù)器。但這只解決遠(yuǎn)程圖片base64內(nèi)嵌圖還是靠后端保存時(shí)處理。我在公共函數(shù)里加了一段轉(zhuǎn)存邏輯function convertBase64Images($html) { preg_match_all(/img[^]srcdata:image\/(png|jpeg|jpg|gif);base64,([^])/i, $html, $matches); foreach ($matches[0] as $index $fullMatch) { $ext $matches[1][$index]; $data base64_decode($matches[2][$index]); // 生成唯一文件名防止路徑?jīng)_突 $filename date(Ymd) . / . uniqid() . . . $ext; $url upload_to_storage($filename, $data); // 偽代碼上傳到對(duì)象存儲(chǔ)并返回URL $html str_replace($fullMatch, img src . $url . alt . $filename . , $html); } return $html; }注意一點(diǎn)base64轉(zhuǎn)存會(huì)明顯增加接口耗時(shí)因?yàn)橐獯a、傳輸、上傳。建議轉(zhuǎn)存放在異步隊(duì)列里先把替換后的URL寫(xiě)進(jìn)一個(gè)臨時(shí)字段等上傳完成再更新到文章正文里避免用戶點(diǎn)保存時(shí)轉(zhuǎn)圈太久。不過(guò)如果文章量不大同步處理也能接受。5.4 空段落堆積導(dǎo)致間距異常前端清洗里我刪除了空的span也刪了沒(méi)有內(nèi)容的p但Word還遺留一種情況段落里有且僅有br一個(gè)接一個(gè)比如pbr/ppbr/p。這種在umeditor編輯區(qū)里看起來(lái)就是幾行空白前臺(tái)渲染時(shí)會(huì)產(chǎn)生很大的垂直留白。我后來(lái)在上面的清洗代碼里直接加了一步正則合并把連續(xù)兩個(gè)及以上的空段落壓縮成一個(gè)html html.replace(/(p(?:\s[^]*)?\s*br\s*\/?\s*\/p){2,}/g, pbr/p);同時(shí)建議編輯在內(nèi)容發(fā)布之前用umeditor自帶的刪除空段落插件跑一遍——后端也可以做同樣的壓縮雙保險(xiǎn)總比單保險(xiǎn)穩(wěn)。5.5 老瀏覽器的兼容性兜底前面提到部分瀏覽器在paste事件里拿不到text/html數(shù)據(jù)。這個(gè)我實(shí)測(cè)下來(lái)主要是老版本Edge和360安全瀏覽器的兼容模式。兜底方案是給umeditor加一個(gè)粘貼后自動(dòng)清理的鉤子在afterpaste事件里對(duì)整個(gè)編輯器內(nèi)容區(qū)再執(zhí)行一次cleanWordHtml——這個(gè)鉤子觸發(fā)時(shí)內(nèi)容已經(jīng)被瀏覽器寫(xiě)進(jìn)去了所以只做后置清洗相當(dāng)于把漏網(wǎng)之魚(yú)再撈一遍。editor.addListener(afterpaste, function () { var body editor.body; var html body.innerHTML; var cleanHtml cleanWordHtml(html); if (cleanHtml ! html) { editor.setContent(cleanHtml, true); } });不過(guò)要注意afterpaste里如果直接用setContent會(huì)強(qiáng)制移動(dòng)光標(biāo)位置編輯在中途被打斷。所以我同時(shí)把光標(biāo)位置緩存下來(lái)清洗結(jié)束后再恢復(fù)。實(shí)現(xiàn)起來(lái)不算復(fù)雜這里就不展開(kāi)了。5.6 站群多站點(diǎn)配置的同步管理最后說(shuō)一個(gè)站群層面獨(dú)有的坑。我們的站群有十幾個(gè)站點(diǎn)每個(gè)站點(diǎn)后臺(tái)都各自加載umeditor的配置。如果我在某個(gè)站點(diǎn)單獨(dú)改了cleanWordHtml其他站點(diǎn)不會(huì)同步慢慢就出現(xiàn)站點(diǎn)A發(fā)布正常、站點(diǎn)B表格亂掉的奇怪現(xiàn)象。我的做法是把清洗函數(shù)、表格歸一化、空段落清理全都抽到一個(gè)獨(dú)立的公共JS文件里每個(gè)站點(diǎn)的編輯器頁(yè)面都引用同一個(gè)文件。本地上線前先在staging站點(diǎn)做一輪批量歷史文章的重清洗測(cè)試確認(rèn)沒(méi)破壞舊數(shù)據(jù)再推到生產(chǎn)站群。這套流程能確保站群所有站點(diǎn)執(zhí)行的是同一套清洗邏輯不會(huì)出現(xiàn)各改各的、互相打架的情況。6. 寫(xiě)在最后這套方案實(shí)際運(yùn)行下來(lái)的體會(huì)如果讓我總結(jié)這件事最核心的教訓(xùn)那就是Word導(dǎo)入兼容性問(wèn)題不能靠編輯器設(shè)置里點(diǎn)幾下解決它本質(zhì)上是剪貼板數(shù)據(jù)、前端清洗、后端凈化、前臺(tái)CSS四層之間的協(xié)作問(wèn)題缺一層都會(huì)出幺蛾子。上線這套方案大概兩個(gè)月后編輯部關(guān)于格式亂了的求助工單從每周十幾條降到了偶爾一兩條剩下的基本都是特殊排版需求比如復(fù)雜的合并單元格表格。內(nèi)容入庫(kù)的HTML體積也小了很多Word粘貼一篇文章的代碼量從平均30KB降到了8KB左右數(shù)據(jù)庫(kù)瘦身效果明顯。我個(gè)人建議如果你也在維護(hù)類(lèi)似的站群一定要把這套清洗邏輯沉淀成公共組件不要每改一個(gè)站點(diǎn)就復(fù)制粘貼一遍代碼。畢竟項(xiàng)目的核心價(jià)值是內(nèi)容的持續(xù)生產(chǎn)而不是反復(fù)折騰一個(gè)粘貼問(wèn)題。希望這篇分享能幫你把這塊硬骨頭啃下來(lái)讓編輯能多花點(diǎn)時(shí)間在內(nèi)容上少跟格式較勁。
返回列表
PREV
查看更多資訊
NEXT
返回資訊列表
国产精品白领在线观看 | 日韩免费三级黄片电影| 丝袜熟女2P| 九9热伊人| 亚洲成aⅴ人片不卡无码| 青青草视频久久| 神马久久69| 人妻丝袜美腿中文字幕| 黄色小视频日本txt| 综合网欧| 被男人吃奶很爽的毛片| 大鸡吧尹人在线| www. 男人天堂成人在线| 亚洲天堂精品日韩电影| 920日本午夜免费| 久久精品无码不卡| 久草免费在线一区二区| 品亲网欧美品亲网| 强奸国产精品视频| 大香蕉在线免| 多乙久久久久久| 日韩不卡网操逼中文字幕日韩| 天天看夜夜看日日干| 中字幕人妻一区二区三区| 男人的天堂不卡一区二区| 色哟哟AV| 日韩精品人妻一| 日本熟妇精品九九| 久久国内| 韩日欧亚a级| 操逼操网| 91N综合网| 亚洲欧美国产日本一区二区三区 | 激情婷婷| 中文乱码字字幕在线第5页| AA丁香综合激情| 亚洲猛交| 天天射网| 日本操逼aaaaa| 91操操| 97久久久久久久久久| 午夜寂寞欧美| 欧美激情视频一区二区| 欧美少妇一区二区三区| 欧美人妻精品一区二区| 丰满少妇精品一区二区| 国产激情久久久| 99精品九九九九九九| 破苞ⅩXXX性无码动漫无码| 日本熟妇精品九九| 人妻熟女av国产网站| 天天欲望网| 一区二区三区精品黑丝白丝酒店对鸡| 校园春色五月天| 久久超碰爱| 精品欧美老熟女一二区| 校园春色综合色| 秋霞成人做爱| 96一区二区三区| 日日操天天操| 2023天天操夜夜操| 后入福利| 91青视频| 97综合在线| 久久久久久久| 中文字幕在在线观看网站| 四虎精品永久在线播放| 国精综合一二三区影视| 99在线免费视频| 中文字幕美女91| 91AV天美在线视频| 性欧美天天| 精品人妻一区二区免费蜜桃视频| 国产精品欧美激在线| 在线中文字幕极品av| 91高清日| 97超碰久| 大稥蕉免费视频这里只有精品| 欧美探花网| 91在线观看,天天综合| 97综合在线观看| 日韩成人性爱AV| av激情亚洲五月天| 日韩图区| 婷婷五月天久久久| 嗯啊抽插大香蕉网页| 亚洲综合伊人无码久久| 亚洲最大的黄色电影网站。| 精品伊人久久久大香线蕉小说| 亚欧成人一级片在线播放| 麻豆精品A片免费观看| 久久伊人大香蕉| 成人无遮挡毛片免费看| 夜夜高潮夜夜爽夜夜爱爱一区| 综合亚洲情色| 素人播放一区| 97人人模人人爽人人| 国产精品播放| 久欲AV| 精品一区二区三区最新| 五月婷婷激情综合| 亚洲精品aa久久伊人| 91综合网| 精品国产乱子伦一区二区三区,精品一| 91精品国久久久久久无码| 亚洲91少妇| av绯色| 日韩免费簧片| 亚洲全色网| 加勒比日本在线| 97超碰国产亚洲精品资源| 亚洲日韩美女中文字幕乱| 天躁夜夜躁2021| 亚州色图片在线色| 综合91网| 天天综合网AV91| 色女网日韩| 丁香五月激情综合| 亚洲无码色| 国产精品香蕉热久久新品| 欧美日韩黄片精品在线| 97色伦97色伦国产欧美| 高清无码在线播放网站| 不卡av在线中文字幕| 老熟女乱伦一区| av三级电影在线播放| 狠狠色五月亚洲91| 欧美日韩中文字幕不卡| 久久在肏| 97视频免费播放| 日韩欧美女求操每天更新| 呻吟 欧美 日本 中出| 97超碰在线资源网站| 97超碰色屌| 中文字幕一区 二 区 三 四 五 区日 日 骚 | 欧美综合777| 欧美日韩婷婷中文| 欧美中文狠| 亚洲一二三| 精品97久久综合| 99自拍B亚洲 | 欧美性爱97超碰| 熟女精品一区二区三区| 日日干日日操五月天伦理视频| 中文啪啪视频| 97网址www| 久热久一区二区三区| 中文字幕 码 自拍 视频 区| 热久久这里只有精品| 91大学精品激情戏| 人妻插插人妻人| 操香逼| 怡红院怡春院| 99黄页网站| 无码操逼天堂| 国产馆| 亚洲情欲| 日本一级婬片试看三分钟| 久久性爱精品一区| 国产精品久久久久亚洲av| 日本熟妇人妻中出视频| 曰韩精品九九无码| 久久中出在线| 我想要啊 啊 啊| 亚91网| 性色AV蜜色av色欲av| 国产精品久久久久久久AV大片| 九九干| 五月丁香综合激情| 亚洲综合113页| 日本99一区二区| 九九九草| 九九九色| 日韩欧美中文| 久热69九色熟妇97| 蜜臀Av一区二区三区| 亚洲资源站| 无码人妻一区二区三区色欲aⅴ| 国产精品内射婷婷一级二| 国产精品嫩草影院免费| 日本三级韩三级99久久| 国产精品电| 香港澳门日本三级网站| 在线无码视频| 亚洲人成网www| 好舒服视频| 精品少妇99| 欧美人与动性人交a| 老熟妇一区二区三区…| 口爆综合网| 校园春色综合香蕉| 亚洲国产另类在线中文| 超碰99在线观看| 欧美中文字幕一区| 色香欲综合| 777AV电影| 国产999精品久久久久久| 五月天久久婷婷亚洲 | 91精品人妻电影| 夂久色| 日韩不卡一二三四| 日韩一区二区高清在线观看的| 色婷婷综合久久久久中文国产精品一区中文字幕,国产福利电影一区二区三区 | 天天操夜夜操| 啊啊啊啊啊好舒服视频| 欧亚无码视频| 偷看洗澡一二三区美女| 中文无线日韩一区| 色欲蜜臀AV| 欧插网站| 91岛国动作片| 国产97色在线| 精品美女人人干| av毛片aaaaa免费看| av资源在线播放天堂| 久久久18禁| 99久久久无码国产精品性啊聊| 五月天婷精品激情| 330dv亚洲成年视频网| 亚洲自拍偷拍视频在线| 婷婷综合久久| 96久久久久| 久久99精品视频| 2019亚洲男人天堂| 久久精品国产亚洲AV嘿嘿| 99re不伦| 富女玩鸭子一级毛片| 婷婷导航| 天堂性色| 青青草密桃在线播放| 夜夜欧美 | 国产精品秘 福利姬在线观看| 欧美操逼视频二区| 国产美女裸体秘 永久无遮挡| 久久色激情一区二区三区| 久久久久久久97| 婷婷久久综合久| 久热这里| 自偷自拍的亚洲视频| 色一区二区三区综合| 日韩探花精品在线视频| 午夜精品久久久99热蜜桃的功能特点| 久久久久久久国产a∨| 亚洲资源网| 99久久久无码精品国产人| 欧美性暴力猛交XXXX| 97色综合中文网| 久久综合激情| 天美麻豆一区二区三区| 97综合在线观看| 日本大香蕉综合网| 中文字幕在线24| 欧美色图20P| 久久九九网| 久久精品国产亚洲粉嫩| 国产一区二区三区中文字幕| 97chaopengongkai| 久久久久久久九九九九九九| 亚洲成人妻日韩在线| 玖玖综合网| 国产精品久久久久无码AV会牛| 中文高清一区二区的| 亚洲成人帖图| 一区操逼日比视频| 老女人老91妇女老热女| 免费一级精品啪啪视频| 福利风月五月天影院| 色综合91好| 极品色社| 四虎国产精品永久在线囯在线| 丝袜美腿诱惑亚洲欧美视频在线观看 | yellow网站免费观看日韩高清无码| 精品国产99| 小视频国产| 五月天久久婷婷亚洲 | 亚州五月| 又大又白奶子| 国产精品4p在线观看| 中文字幕久久精品一区| 日韩欧美午夜视频在线| 亚洲在线综合| 婷婷亚洲天堂| 久久草草亚洲蜜桃臀| 性开放中文AV高清无码免费看| 热99这里有精品综合久久 | 久超超碰| 日va操| 97国产|免费| 青青草国产亚洲精品久久 | 99日免费视频中文字幕| 中文字幕人妻丝袜| 在线岛国新天堂8| 白丝jkav| 五月婷丁香| A一区片| 蜜桃网熟妇| 91色鬼| 91操人| 岛国爱情动作片在国产AV无码专区亚洲AV漫画| 96精品在线| 日韩黄色av中文字幕| 日韩精品 欧美激情| 免费人人搞97| 97超碰国产亚洲精品资源| 麻豆天美在线| 色哟哟AV| 试看福利| 蜜桃色院一区久久| 内射白嫩美女| 在线观看一卡二卡| 特级丰满少妇一级AAAA爱毛片| AAAA级日本片免费视频| 亚洲毛片久久| 欧美丝袜91| 内射黑丝袜| 高潮嗯啊性感美女久久久| 热九九精品| 亚洲色 国产 欧美 日韩| 国产中出内射一区二区| 精品国产乱子伦一区二区三区,精品一 | 国产精品制服丝袜中文字幕日韩一区二区三区 | 亚洲激情综合另类男同| 性夜影院爽黄A爽免费动漫| 日韩 成人 有码| 强上我不卡卡| 第45页一区二区| 囯产乱伦一区二区三女| 男男H黄动漫啪啪无遮挡网站| 成人av福利在线观看| 啊啊啊好想要| 亚洲人成网站7777| 一本色道久久天天射天天干| 国产精品 久久久精品一牛| 99婷婷一区二区| 狠狠色噜噜狠狠狠狠2018| 99少妇| 性综合网| 色官网在线| 国产一级作爱毛片| 激情专区综合| 偷窥自拍亚洲色图| 天天爽天天操| 一区二区三区四区姦女| 欧美97视频| 亚洲丝袜二区在线| 91老熟妇| 黄色AAAAA欧美| 日韩av一级黄片| 裸体美女国产免费久久久网站| 五月婷婷激情| 人人超碰在线观看黄| 丝袜视频网国产90| 亚洲无992tv| 污污汅18禁网站在线永久免费观看| 精品国产91av一区二区三区| 巨爆乳肉感一区二区三区竹菊影视 | 99这里只有精品国产| 第二页中文字幕| 91精品人| 一区中文字幕二区日韩| 色www精品视频在线观看| 久热这里| 日本人妻最新在线中| 国内偷拍精品一区二区| 91色色色| 在线观看午夜婷婷久久久久清性观看| 超碰人妻久久| 人、人、摸,人、人、草| 97亚洲一区| 国产97综合| 黄片qw| 五月丁香综合激情| 九九九九97| 久96热在线观看视频| 99视频在线| 亚洲无限观看| 精品久久久久久AV无码| 情侣开房子拍 日韩无码 女的很漂亮| 道久久五香丁月婷婷激情综合| 97超碰香蕉| 国产67194| 日韩欧美中文字| 极品人妻少妇综合| 婬女免费一二三区A片| 日韩女优在线| 黄色无码高清黄色无码网站| 国产女性无套 免费观看| 东北女人| 精品国产91av一区二区三区| 五月天伊人| 国产色图乱伦| 99热这里是精品| 精品人妻一区二区三区不卡断| 国产高清在线观看欧美| 丝袜狠狠草尤物 91| 婷婷丁香九月| 熟女久久久| 久操网视频| 国产热av| 正在播放:深夜激情大战,自带黑丝袜全力输出骚穴 | 一二三四日本视频高清| 97干在线视频| 麻豆亚洲Av成人无码一区精品| 国产在线综合福利网站| 一区二区三区四区姦女| 久久五十路熟女人妻| 99国产精品免费| 在线观看岛国有码| 秋霞一级A片黄色视频| 婷婷五月av| 欧美九九九九九| 亚洲欧美校园另类春色| 婷婷在线视频在线观看| 丝袜翘臀后入欧美校园亚洲自拍另类小说一区中文字幕少妇诱惑 | 色婷婷狠狠18禁| 我要色综合网| 天天碰操中国年青熟妇| 久久国内| a亚洲欧美色欲| 成人日本片久久久蜜桃| 国内精品久久国产,www香蕉久久五月丁香,亚洲欧美日韩精品永久在线,日本精品一 | 99久久无色码| 欧亚免费视频| 免费1级a做爰片观看| 大香蕉中文201| 青青伊人这里只有精品| 嗯啊啊啊轻点视频 | 精品少妇高潮久久| 日韩不卡一二三四| 久久神马影院| 99精品丰满人妻无| 可以免费观看的AV| 日日夜夜骚| 免费亚洲黄色视频在线观看| 亚洲男人的天堂亚洲| 国产粉嫩蜜臀av一区二区三区| 啊啊啊啊好疼视频| 日韩精品操少妇| 日本三级人妻a人妻一在线| 成人精品在线观看| 日本一级一级一级一级| 第一高清av中文字幕| 无码黑人精品一区二区三区三| 国产精品久久久吖| 精品国产三级av韩国在线| henhen91| 色综合一区二区三区| 易易A毛视频| 亚洲欧综合另类无码一区| 国产精品ww久久| 国产9区| 男人久久天堂| 亚欧高清| 久久这里是精品| 美女操逼福利视频| 亚洲女毛多水多21P| 中文字幕精品一区二区精品| 亚洲天堂一区二区久久| 欧美黄片免费在线观看视频| 亚洲第一精品在线视频| 国产AV超爽| 久热九九| 久久人人爽爽爽人久久久| 超碰在线人妻不卡| 热热色国产一二区AV| 97伦综合| 国产一区二区在线播放量| 三级特黄60分钟播放| 久久久国产亚洲精品系列| 一区二区三区视频在线观看免费| 97人人超| 男人的天堂成人的社区| 免看60秒涩涩视频| 亚洲天堂欧美| 国产区性爱在线视频秋霞豆 | 操穴国产| 亚洲精品国产熟女久久久| 酒色综合网| 国产操逼逼网| 在线精品福利免费播放| 色哟哟-国产专区| 欧美视频一区二区在线| 亚洲一区深夜| 青青草原成人| 激情五月综合开心五月| 久热9| 殴洲老熟女| 97超碰站| 日韩啪啪啪啪啪| 99热99re6国产在线播放| 精品人妻av区天天看片| 久久香蕉综合一本到3atv| 国产有码一区| 免费视频一二三区| 伊人久久大香大香线蕉中文 | 精品一二三区四视频| 欧综合网| 日本三级韩国三级99| 是还免费视频1727我| 欧美gv在线观看| 亚州精人品大香蕉| 精品国产乱码久久久A| 人人操人人uiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiii | 欧美A√综合网| 欧美性爱第1 页| 精品一区二区三区蜜桃臀赵总| 人妻熟女一区二区| 色妇91| 青青欧洲黑| 日本韩国国产精品一区| 色婷婷综合久久中文字幕雪峰| 伊人网高清| 夜夜操天| 立川理惠被中出无码| 丝袜狠狠草尤物人妻av91| 狠狠超| 色鬼在线综合| 国产女同视频在线播放| 99亚洲人人| 18禁免费视频| 日曰骚久久精品| 96精品在线| 日韩av不卡在线看| 风流老熟女一区二区三区l| 国内毛片无遮挡国产| 六月激情网| 亚洲97综| 麻豆精品三区视频| 欧美中出1| 男人的天堂 在线一区| 久久本道| 黄色网址在线免费观看| 蜜臀久久99精品久久久久久成人小说| 丁香六月综合激情| 十八禁啪啪视频| 丝袜美腿校园春色| 大香蕉九九| 免费αV在线视频| 日日日日做夜夜夜夜做无码97| 亚洲古典另类欧美在线| 福利视频合集| 99这里都是精品| 99热在线播放| 91碰超| 97av在线观看| 人妻熟女一区二区| 九九玖玖精品| 久草男人天堂| 久操高青| 国产精品亚洲免费| 免费看片黄| 亚洲中文字幕av| 日韩国产十八禁| 天天日天天插| 国产成人自拍视频在线| 91综合色噜噜| 久久久久久久唑| 亚洲人综合| 亚洲天堂情色| 欧美日韩淫加| 精品美女少妇一区二区| 国产精品视频播放| 成人精品电影| 大香蕉操久久| 日本超碰在线国产一区| 色婷婷五月综合激情中文字幕| 伊人久久在线视频观看| 久久婷婷电影网| 99色网| 亚洲资源一区| www.91视频网| 国产一线二线三线av| 亚洲做性| 伊人性在线视频| 熟妇在线视频一区二区| 日本天天吊| 色香欲综合| 色亚洲欧美| 欧美BT 亚洲色图| 超碰97COm中文| 91bbbbbb| 久久伊人最新网址视频| 亚洲本色精品一区二区久久| 97在线免费观看| 69XX一中文字幕人妻91| 少妇高潮流水av免费| 欧美天天干| 黄色av片三级三级三级免费看| 无码乱人伦中文视频| 一级久久性爱视频| 色999人与兽| 久久97资源 网| 亚洲日韩乱码中文无码蜜桃臀网站| 97超碰超欧美。| 婷婷九月丁香| 日本成a人v网站在线观看| 东北少妇高潮zzzz| 精品中文字幕一区二区l - 百度| 日本福利二区视频| 亚洲影院成人| 日韩性爱1级片视频| 日韩免费性爱视频在线观看| 久久精品一区二区三区不卡| 国产九区| 91美女小视频| 日韩国产乱子伦App| 国产毛片精品一区二区色欲黄A片| 天天干天天日天天射黄色| 日韩无码AB| 久久精品熟妇丰满人妻99| 九月丁香婷婷色| 97精品国产97久久久久久| 干B| 亚洲色人| 久久久婷婷婷| 人妻黑丝袜电影| 男女无套 免费网站| 亚洲色图欧美视频| 日本999精品| 91骚熟女| 丁香成人五月天| 天天操天天日天天干| 免费精品无码一级毛片牛牛影视 | 日韩丝袜二区| 国产精品高潮久久AV| 999综合网| 久久综合久久综合人久久夜精品| 亚春色色| 国产一区二区精品在线视频| 91亚州| 久久香蕉网| 加勒比综合a∨| 欲射影视| 无遮挡男女激烈动态图| 人妻熟女一区在| 加勒比99999| 亚洲欧美精品福利在线| 欧美精品亚洲精品日韩传电影| 999热这里只有精品| 五月婷婷无码| 超碰97COm中文| 亚洲最大91网| 日本506070| 婷婷三区| 内射老妇BBWX0C0CK| 夜夜高潮夜夜爽| 亚洲在线网站| 97精品视频免费| 欧美午夜视频免费观看| 超碰97亚洲区| 婷婷五月天激情网| 中文字幕制服诱惑| 美女尤物福利视频| 国产强奸AV在线| 日韩欧美资源| 91九色在线| 天天干天天操天天操夜夜操天天操 | 亚洲精品影视老司机| 欧美日韩97在线| 激情综合亚洲| 91性高朝久久久久久久久| 96国产污污污丝袜| 大香蕉黄色一区| 1240青青草一区二区三区视频天爱| 夜夜爽77777| 日韩中文字幕av在线播放| 久久永久无码人妻视频| 日韩午夜国产| 一本久道久久综合狠狠爱| 人人操人人摸人人骑| 91超碰碰在线| 少妇超碰在线| 强奸乱伦中文字幕AV| 亚洲综合色图欧美| 欧美色图私拍91| 成人午夜无码视频| 国产美女裸体秘 永久无遮挡| 欧美,日韩,中文,另类| 天美精品原创av片国产| 白丝1区2区3区| 色官网在线| 国内精品a| 男同专区一区二区三区在线| 婷婷干黄色| 丰满人妻一区二区三区性色| 婷婷三区| 秋霞男人网| 国产精品无码论坛| 伊人专区一区二区三区| …亚洲黄色厕厕女女在线播…| 91成人久久| 久久只有精品一区二区三区| 日韩一级二级| 大香蕉啪啪啪| 超碰99在线观看| 国产日本久久免费精品| 1人人看人人摸人人操| 人人操人人色网| 欧美性高潮| 欧美色交| 日逼97| 理论久久婷婷网8| 狠狠躁久久躁| 日韩日韩日韩-国产乱码精品一区二区| 天天享受天天看| 久久欧洲| 淫乱图区| 91亚洲欧美综合高清在线| 老汉网| 91强在线播放| 自拍第一页| 日本一区二区三区四区免费观看| 在线αⅴ| 亚州一区二区| 91久久青青草原精品| 亚洲一级黄色毛片| 欧美精品一区二区少妇免费A片| 国产午夜福利电影免费在线观看 | 黄久在线| 欧美青青视频| 久久久精| 性天堂| 欧美一区二区三区入口| 人人干人人操人人..com| 成人片在线播放| 成年女人一区| 91精品久久久久久久久久| 久久精品无码不卡| 激情综合网激情综合| 日本潮催一卡操| 熟妇操花| 亚洲综合影片| 怡红院亚洲怡春院av| 天天澡天天爽日日AV| 影视综合无码少妇| 丁香六月婷婷| 欧日韩在线观看| 久久免费少妇| 成人免费不卡在线视频| 精品人妻一区二区免费蜜桃| 亚洲极品| 欧美人人曰人人操人人射射| 亚洲国产无码精品首页久久久| 国产人伦精品一区二区三区 | 中日韓欧美高清| 脫衣舞一区二区三区| 亚洲激情视频| 91精品久久综合熟女| 亚洲久热| 天天天操天天天爱| 日韩福利综合一区| 久久激情五月| 青青久日| 亚洲天堂AV在线播放| 精品区国产区一区二区三区| 精品人妻一区二区免费蜜桃| 老熟女91视频| 97婷婷色| 91精品在线播放| 亚洲天堂人妻熟妇视频| 亚洲精品欧美专业| 欧美真人抽搐一进一出gif| 激情99| 国产熟女一区二区| 中文字幕日本久久| 青青草原香蕉日本Ap| 26uuu性| 人妻内射一区二区在线视频| 男女猛烈无遮掩视频免费软件| 成人影 天天操 亚洲| 日日夜夜免费| 又大又黄国产| 香伊人在线| 久久久穴999| 日韩无码AB| 在线岛| 射丝袜大香蕉| 中字乱伦AV| 加勒比久久av| 9999久久久久| 欧美综合第一页| 高清不卡一二三区视频......| 精品欧美老熟女一二区| 亚洲男人的天堂一区二区| 日本国产亚洲一区在线观看| 闷骚老熟女15P| 国产区91柔拿会所技师| 国产精品97超碰| 婷婷五月天成人| 一本色道综合久久欧美| 天堂伊人久久| 99热精品在线播放| 九九综合九九综合| 99热日| 大香蕉操久久| 精品少妇人妻av久久免费| 超碰97资源网亚洲| 久久久影院| 小情侣高清国产在线视频| 久久春色| 九九九九九九免费视频| 日日日日日| 久久久亚洲欧美综合| 中文字幕在线免费观看| 激情视频一二三| 91男女啊啊啊| 韩国一级做A片免费的| 性综合网| 国内精品99999| 成人久久精品| 蜜桃精品一区二区三区ww| 欧美中字不卡| 欧美性性性| 亚洲一区二区三区播放在线| 日韩色图 一区二区| 国产av美女被艹的乱叫| 干我久操| av激情亚洲五月天| 性高潮久久久| 99re在线视频这里只有精品 | www.av在线观看| 一个人免费视频观看在线WWW| 熟女少妇一区二区三区| 操淫穴亚洲五月丁香 | 九一综合精品视品av| 婷婷综合| 婷色五月| 97av在线视频| 五月婷婷综合网| 色婷婷基地| 六月激情网| 99热婷婷| 亚洲 综合 欧美| 欧美性爱97超碰| 97精品国产97久久久久久| 中文字幕黑人大片| 色爱综合网| 91人妻丝袜无码| 欧美三级免费伊人| 性性久久| 亚洲综合色在线| 欧洲精品二区| 免费精品无码一级毛片牛牛影视| 国产精品视频内谢女人| 中国91AV| 亚洲啪啪视频免费| 日逼逼免费看| 五月丁香激情综合网| 91无码中出人妻视频| 久久久影院| 欧美人妻色| 在线国产探花| 屌逼传媒| 久久99精品国产| 插插综合网天天影视网| 搡老女人911熟妇老熟女| 人人 操人人 操人人| 999岛国大片| 久久婷婷国产一区二区色| 欧美色图 人妻| 国产区在线| 一区二区三区视频国产免费| 国产精品无码AV网站| 操人妻丝袜高跟| 亚洲精品不卡一二三区| 欧成人精品H无码| 美女极品一区二区三区| 神马精品视频| 一区超碰一区| 欧美一二三级精品在线| 国产一级αv免费看片| 精品久久在线区一区| 九九综合网| 欧美爱三级日韩久久| 亚洲九区| 亚洲一区制服诱惑| 韩三级a视频在线观看| 丁香五月色| 久久久久国产精品人妻aⅴ天堂| 日韩欧美性吧婷婷乱伦大香蕉| 人人摸人人叼| 乱码人妻一区二区三区| 日韩成人精品| 自拍丝袜美腿人妻| 久久男人的天堂| 99精品久久| 国内毛片欧美香蕉精品| 国产suv精品一区二区四区999 | 91GD.COM| 97久久国产精品| 亚洲制服aⅴ中文字幕| n1038 一二三区| 久久精品国产精品一区| 九九亚洲| 亚洲超碰97| 天天影视网综合少妇| 91老司机视频| 色五月婷婷麻豆在| 国产精品久久久久久久久久久久久久吹| 欧美亚洲另类在线蜜桃| 97爱啪| 97超碰国产亚洲精品| 萌白酱自拍视频| 中文一区二区| 日本午夜福利影院| 色婷婷日韩精品一区二区三区| 1禁看欧美黄片免费看| 亚洲丰满很很操| 久/久精品99看9| 欧美97在线欧| 少妇天堂网络| 久久夜黄色无码A级大片| 91AV天美在线视频| 丁香色色网| 日本精品999| A男人的天堂| a在线视频免费观看| 国产精品九九九| 久久一二三四五六七八九区区| 思思在线免费视频| 婷婷激情四射| 蜜桃色院一区久久 | 色欲人妻一区二区在线| 黄色免费网页无码| 超碰91在线| 制服丝袜第二页| 国产11页| 亚洲av影音先锋| 天天综合网网欲色| 97丝袜亚洲在线播放| 久久激情视频| 日韩免费大片一级播放| 中文不卡视频| 加勒比伊人综合| 久超碰在| 日本污ww视频网站| 国产一区二区三区免费视频在性观看| 国产精品69久久久久久久| 无码一区二区三区四区五区六区七区八区九区十区视频 | 久久超碰爱| 国产原创剧情在线丝袜| 无码不卡八戒| 日韩在线电影| 国产精品一区在线播放| 天操老女人| 欧美一二三区四五区| 精品久热| 国产农村一一级特黄毛片| 亚洲日韩视频二区| 国产在线视频午夜精华在| 18+91网站| 国产中文字幕在线观看| 熟女高潮合集-永久久久-成人AV| 色九月综合| 午夜久久一区二区无码中出| 日本福利社| 婷婷色色网| www.夜夜| 亚洲男人天堂Av| 久久久久久亚洲精品不卡人乳| 欧美特大黄一级片片免费| 成人5码视频| 最新的亚洲无吗| 亚洲无码AV九九九| 欧美激情中文字幕另类小说| 啪啪啪精品视频| 日本大片日本一区二区免费高清| 怡红院成人av| 91男女啊啊啊| 九九综合久久| 中日高清无码操逼视频| 久久激情综合| 色九九九九久| 情色av电影| 久久美国毛片| 人妻精品一区二区三区| 久久天堂| 日韩免费在线视频观看| 福利在线观看一区二区| 国产精品大香蕉| 日韩专区数据列表-第3230页-精品国产一区二区三区香蕉 久久99熟女人妻中文字 | 97超碰人人操人人操| AⅤ片水多多| 国产精品黄色三级av| 日本网色| julia在线观看久久| 超碰97欧美日韩| 91bbbbbb| 黄色电影在线播放综合网站| 亚洲国产午夜真人一级片中文字幕精品黄网站| 亚洲欧洲精品视频发布| 综合熟女| 中文字幕在线2| 天天综合97| 全免费a敌肛交毛片免费| 天天爽天天操| 亚州色阁| 欧美国产精品久久九九| hd成人一区二区在线| 插入综合网| 偷拍亚洲情色| 伊人操你| 天美麻豆精品视频99| 人妻黑丝袜电影| 91人妻人人澡人人爽人人精品| 欧洲一级性爱视频在线观看| 美女的肌被草喷水视频| 久久久亚洲熟妇资源| 久久久久久亚洲中文| 亚洲精品97在线| 天堂成人网| 爱媛媛久久国产福利| 久久久久久9999| 亚洲日韩精品久久久久一区壹牛| 婷婷在线视频| 欧美亚洲天天| 一区在线国产播放| 久久精品99| 亚洲一本色道中文无码aV天美| 国产精品久久久久久久久久久久久久久久久久| 国产精品网址| 久久色人体| 亚洲全色网| 97国产色综合| 亚洲春色一区二区三区| 色综合美国| 人妻9117c| 超碰1024久久| 99精品视频在线观看免费| 国产啊v在线免费播放| 香蕉视频精品亚洲一区二区三区在线播| 国产高清免费不卡av| 日本天天干天天日一区| 欧美性爱另类综合| 91日产桃蜜| 亚洲18禁| 精品国产一区二区三区四区在线看| 鸥美插入视频| 黄色片大香蕉| 欧美亚洲首页| 一区二区 日韩 欧美 国产 传媒| 亚洲男人久久综合天堂| 亚洲欧美在线综合| 国产综合操逼高清| 97国产精品视频| 欧美情色贴图| 亚洲午夜AV| 国产成人99久久亚洲综合| 色综合20p| 美女黄色一级A视频| 黑人精品一区二区在线播放| 欧美一区二区三区成人性生活| 99久久网站| 自拍偷拍第26| 大香蕉中文网| 日韩精品怡红院| 99精品在线播放| 色色网91| 精品免费囯产一区二区三区 | 日韩人妻网站| 神马精品视频| 国产日韩精品suv| 日本性爱不卡视频| 日韩射图| 五月综合色| 日本熟妇人妻中出视频| 日韩电影在线观看网址| KK色在线影院| 国产偷人妻精品一区二区在线| 中文字幕一区av| 婷婷AV一区二区三区| 一级岛国大片| 亚洲学生妹高清av| 国产熟女一区二区| 熟女露脸激情自拍视频| 久久久久久久久久久久黄色 | 97资源站国产精品| 啊啊啊啊啊啊啊啊啊在线观看| 亚洲色图加勒比| 中文字幕91综合| 黑丝内射一区二区三区| **一级毛片国产| 最新日韩黄片| 我爱大香蕉| 欧美色五月| av天堂影视中文在字幕在线中文 | 久久这里都是精品| 欧美第一页性| 夜夜操天| 一本正道久久熟女| 精品人妻一区二区免费蜜桃| 2020视频1区2区3区| av资源在线播放天堂| 日韩黄色一区二区三区| 國產尤物AV尤物在線觀看 | 国产成人啪一区二区| 九区国产| KK色在线影院| 黄站在线免费观看| 97天天操| 久久产精品一区二区三区电影| 欧美成人精品欧美一级乱黄一区二…| chaopen97久久| 欧美第五页| 老熟妇91| 日韩成人私密一级精品av| 色色色日本| 超碰国产精品久| 国产精品免费视频人成| 天天做日日爱夜夜爽| 国产高清成人传媒影视| www.色婷婷| 亚洲天堂东京热| 亚洲性少妇| 97精品视频免费| 东北操逼| 9久久精品| 青娱乐老司机视频| blacked精品一区国产| 亚洲高清在线| 精品免费国产二区三区| 欧美极品少妇| 国产精品点击进入在线影院高清 | 国产一区二区三区影片| 日韩三级视频一区二区三区| 日韩精品9999| 久久久性少妇| 逼操网站| 99青草| 中文字幕av一区二区三区人妻少妇| 啊啊啊免费| 免费伦费视频在线观看| 激情干在线| 亚洲最大黄网| 欧美亚洲美少妇一区二区| 欧美91久久久久| 国产精品白丝AV| 97在线视频观看网站| 99热啪啪| 久久这里是精品| 丰满人妻一区二区三区四| 天堂亚洲欧美| 欧美亚洲中文字幕| 2019AV天堂| 久久久久久九九九| 丁香五月激情网| 好湿好紧视频| 免费强奸av| 啊啊啊 在线| 久久高清欧美国产| 99re在线观看| 超碰无码加勒比| 日日日啊啊啊| 91色人妻| 狠插 制服 自拍| 免费簧片在线观看| 夜夜嗨一区二区| 亚洲人妻久久久| 凸凹视频在线观看| 久久欧美1卡2卡3|