波多野结衣 蜜桃视频,国产在线精品露脸ponn,a v麻豆成人,AV在线免费小电影

公告:魔扣目錄網(wǎng)為廣大站長(zhǎng)提供免費(fèi)收錄網(wǎng)站服務(wù),提交前請(qǐng)做好本站友鏈:【 網(wǎng)站目錄:http://www.ylptlb.cn 】, 免友鏈快審服務(wù)(50元/站),

點(diǎn)擊這里在線咨詢客服
新站提交
  • 網(wǎng)站:51998
  • 待審:31
  • 小程序:12
  • 文章:1030137
  • 會(huì)員:747

在使用TinyMCE插入媒體代碼時(shí),會(huì)把原始的HTML替換為img標(biāo)簽,并且把原始數(shù)據(jù)轉(zhuǎn)換為json格式的數(shù)據(jù),例如:

原始HTML片段:


<p><object width="320" height="240" data="http://www.sin.com/sss.swf" type="application/x-shockwave-flash"><param name="src" value="http://www.sin.com/sss.swf" /></object></p>


TinyMCE格式化后的HTML片段:


<img width="320" height="240" class="mceItemMedia mceItemFlash" src="http://121.52.214.209:9000/Scripts/tinymce/themes/advanced/img/trans.gif" data-mce-json="{'video':{},'params':{'src':'http://www.sin.com/sss.swf'},'name':null,'hspace':null,'vspace':null,'align':null,'bgcolor':null}"/>


到官網(wǎng)以及stackoverflow查了半天,類似問(wèn)題的解決方案貌似是配置TinyMCE的valid_elements屬性,但我試過(guò)都不管用。

最終的解決辦法是采取了一種曲線救國(guó)的方式,大致思路如下:

采用HtmlAgilityPack來(lái)解析獲取到的編輯器內(nèi)容。

提取其中匹配的視頻元素

替換該元素,使用格式化后標(biāo)準(zhǔn)的HTML媒體元素,例如<object>

關(guān)鍵點(diǎn):

1,XPATH表達(dá)式 //img[@class="mceItemMedia mceItemFlash"]

2,json字符串到.net對(duì)象的轉(zhuǎn)換,不想單獨(dú)定義,試了下json to dynamic類型,竟然是ok的,看來(lái)json.Net這個(gè)類庫(kù)很強(qiáng)大。

貼上轉(zhuǎn)換部分的代碼,在有多個(gè)匹配元素的情況下,采用遍歷HtmlAgilityPack.HtmlNode的方式一直沒(méi)成功,不知道是我沒(méi)用對(duì),還是HtmlAgilityPack的問(wèn)題,最終是采用了字符串替換的方式。

private string HandleMediaContent(string content)
        {
            var reStr = string.Empty;
            reStr = content;
           
            string template = "<object width=\"{0}\" height=\"{1}\" align=\"middle\" data=\"{2}\" type=\"application/x-shockwave-flash\"><param name=\"src\" value=\"{3}\" /><param name=\"allowfullscreen\" value=\"true\" /><param name=\"quality\" value=\"high\" /><param name=\"allowscriptaccess\" value=\"always\" /></object>";
            HtmlAgilityPack.HtmlDocument doc = new HtmlAgilityPack.HtmlDocument();
            doc.LoadHtml(content);
            var vNodes = doc.DocumentNode.SelectNodes("//img[@class=\"mceItemMedia mceItemFlash\"]");
            if (vNodes == null)
                return content;
            for (var i=0;i<vNodes.Count;i++)
            {
                //var parent = vNodes[i].ParentNode;
               
                var attr = vNodes[i].Attributes.FirstOrDefault(t => t.Name == "data-mce-json");
                var width = vNodes[i].Attributes.FirstOrDefault(t => t.Name == "width");
                var height = vNodes[i].Attributes.FirstOrDefault(t => t.Name == "height");
                var obj = Newtonsoft.Json.JsonConvert.DeserializeObject<dynamic>(attr.Value);
               
                var newNodeDocument = new HtmlAgilityPack.HtmlDocument();
                newNodeDocument.LoadHtml(string.Format(template,width.Value,height.Value,obj.@params.src,obj.@params.src));

                //parent.InsertBefore(newNodeDocument.DocumentNode, vNodes[i]);
                //parent.RemoveChild(vNodes[i]);

                reStr = reStr.Replace(vNodes[i].OuterHtml, newNodeDocument.DocumentNode.OuterHtml);
               
            }
            //return doc.DocumentNode.OuterHtml;
            return reStr;
        }

分享到:
標(biāo)簽:媒體播放器 插入 解決方案 TinyMCE
用戶無(wú)頭像

網(wǎng)友整理

注冊(cè)時(shí)間:

網(wǎng)站:5 個(gè)   小程序:0 個(gè)  文章:12 篇

  • 51998

    網(wǎng)站

  • 12

    小程序

  • 1030137

    文章

  • 747

    會(huì)員

趕快注冊(cè)賬號(hào),推廣您的網(wǎng)站吧!
最新入駐小程序

數(shù)獨(dú)大挑戰(zhàn)2018-06-03

數(shù)獨(dú)一種數(shù)學(xué)游戲,玩家需要根據(jù)9

答題星2018-06-03

您可以通過(guò)答題星輕松地創(chuàng)建試卷

全階人生考試2018-06-03

各種考試題,題庫(kù),初中,高中,大學(xué)四六

運(yùn)動(dòng)步數(shù)有氧達(dá)人2018-06-03

記錄運(yùn)動(dòng)步數(shù),積累氧氣值。還可偷

每日養(yǎng)生app2018-06-03

每日養(yǎng)生,天天健康

體育訓(xùn)練成績(jī)?cè)u(píng)定2018-06-03

通用課目體育訓(xùn)練成績(jī)?cè)u(píng)定