最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

C#結(jié)合JS修改解決KindEditor彈出層問題

 更新時間:2024年06月18日 10:01:01   作者:初九之潛龍勿用  
KindEditor 是一款出色的富文本HTML在線編輯器,這里我們講述在使用中遇到的一個問題,在部署到某些 WEB 應(yīng)用項目中,點擊類似彈出層功能時,只顯示了遮罩層,而內(nèi)容層則定位無法正確顯示,所以本文給大家介紹了C#結(jié)合JS 修改解決 KindEditor 彈出層問題

問題現(xiàn)象

KindEditor 是一款出色的富文本HTML在線編輯器,關(guān)于編輯器的詳細(xì)介紹可參考我的文章《C# 將 TextBox 綁定為 KindEditor 富文本》,這里我們講述在使用中遇到的一個問題,在部署到某些 WEB 應(yīng)用項目中,點擊類似彈出層功能時,只顯示了遮罩層,而內(nèi)容層則定位無法正確顯示,下面所列是一些有關(guān)彈出層的功能,正確顯示如下圖:

但某些時候,會只顯示遮罩層,無法顯示彈出層,如下圖:

原因分析

在瀏覽器顯示內(nèi)容中右擊審查元素(360極速,edge則為檢查元素),如下圖:

發(fā)現(xiàn)遮罩層輸出正常,為絕對定位,并設(shè)置正確了 left 、top、width、height 值,但排查到 css class 為 ke-dialog 的彈出層時,發(fā)現(xiàn) position 定位缺失了 top 值,這應(yīng)該是彈出層問題之所在。

范例運行環(huán)境

操作系統(tǒng): Windows Server 2019 DataCenter

.net版本: .netFramework4.0 或以上

KindEditor version 4.1.7 (2013-04-21)

開發(fā)工具:VS2019  C# 

解決問題

修改 kindeditor.js

如下圖,我們發(fā)現(xiàn)遮罩層的 z-index 值為 811212,彈出層的 z-index 值為 811213:

因此打開 kindeditor.js 核心文件進(jìn)行查找修改,該文件存在于插件應(yīng)用的根目錄:

按 811213 進(jìn)行查找,發(fā)現(xiàn)如下圖代碼:

可試圖在 options 選項里增加初始的 top 屬性值為 '100px',保存文件再試。 

C# 服務(wù)端更新

 在我的文章《C# 將 TextBox 綁定為 KindEditor 富文本》里我們創(chuàng)建了 KindEditor 類,可修改類代碼,通過時間戳引入更新后的js版本,重寫后的代碼如下:

public class KindEditor
            {
                Page CurrentPage = null;
                public KindEditor(object page)
                {
                    if (page == null)
                    {
                        return;
                    }
                    CurrentPage = (Page)page;
                }
                public string init(string[] idList)
                {
                    return init(idList, null);
                }
                public string init(string[] idList,Literal writeControl)
                {
                    TimeSpan ts = DateTime.UtcNow - new DateTime(1970, 1, 1, 0, 0, 0, 0);
                    string timestamp= Convert.ToInt64(ts.TotalSeconds).ToString();
 
                    HtmlLink cssLink = new HtmlLink();
                    cssLink.Attributes.Add("rel", "stylesheet");
                    cssLink.Href = "/common/kindEditor/themes/default/default.css";
                    CurrentPage.Header.Controls.Add(cssLink);
 
                    HtmlLink cssLink2 = new HtmlLink();
                    
                    cssLink2.Attributes.Add("rel", "stylesheet");
                    cssLink2.Href = "/common/kindEditor/plugins/code/prettify.css";
                    CurrentPage.Page.Header.Controls.Add(cssLink2);
 
 
                    HtmlGenericControl sc = new HtmlGenericControl("script");
                    sc.Attributes.Add("charset", "uft-8");
                    sc.Attributes.Add("src", "/common/kindEditor/kindeditor.js?v="+timestamp);
                    
 
                    CurrentPage.Page.Header.Controls.Add(sc);
 
                    HtmlGenericControl sc2 = new HtmlGenericControl("script");
                    sc2.Attributes.Add("charset", "uft-8");
                    sc2.Attributes.Add("src", "/common/kindEditor/lang/zh_CN.js");
                    CurrentPage.Page.Header.Controls.Add(sc2);
 
                    HtmlGenericControl sc3 = new HtmlGenericControl("script");
                    sc3.Attributes.Add("charset", "uft-8");
                    sc3.Attributes.Add("src", "/common/kindEditor/plugins/code/prettify.js");
                    CurrentPage.Page.Header.Controls.Add(sc3);
 
                    string js = fLoadFromFile(CurrentPage.Request.PhysicalApplicationPath + "common/kindEditor/init.js", Encoding.Default);
 
                    HtmlGenericControl sc4 = new HtmlGenericControl("script");
                    foreach (string id in idList)
                    {
                        sc4.InnerHtml += js.Replace("{0}", id);
                    }
                    CurrentPage.Page.Header.Controls.Add(sc4);
                    return "";
                }
        		public string LoadFromFile(string PathFile,System.Text.Encoding encodtype)
		        {
        			FileStream fs;
		        	StreamReader newsfile;
        			String linec,x_filecon="";
		        	fs=new FileStream(PathFile,FileMode.Open);
        			newsfile=new StreamReader(fs,encodtype); 
		        	try
			        {
        				linec=newsfile.ReadLine();
		
		        		while(!(linec==null))
				        {
					        x_filecon+=linec+"\r\n";
					        linec=newsfile.ReadLine();
				        }
				        newsfile.Close();
				        fs.Close();
			        }
        			catch(Exception)
		        	{
				        newsfile.Close();
				        fs.Close();
			        }
        			finally
		        	{
				        newsfile.Close();
				        fs.Close();
			        }
			        return x_filecon;
 
        		}//LoadFromFile Function
 
            }

在 init 方法中生成時間戳變量 timestamp, 并在服務(wù)端 header 修改 sc.Attributes.Add("src", "/common/kindEditor/kindeditor.js?v="+timestamp);  的時間戳版引用,以便于調(diào)試修改和刷新。至此問題解決。 

小結(jié)

在調(diào)試成功完成后,可關(guān)閉時間戳版本引用方法以進(jìn)行緩存操作,防止每次都重新加載文件內(nèi)容。

關(guān)于彈出層顯示如果不修改代碼,還可以使用一種消極方法進(jìn)行操作,即點擊其全屏功能,如下圖:

全屏后兼容性比較好,未出現(xiàn)彈出層定位不準(zhǔn)的問題,但如果在整體操作界面上來說,來回的切換全屏模式比較繁瑣。

到此關(guān)于修改解決 KindEditor 彈出層問題就介紹到這里,感謝您的閱讀,希望本文能夠?qū)δ兴鶐椭?/p>

以上就是C#結(jié)合JS修改解決KindEditor彈出層問題的詳細(xì)內(nèi)容,更多關(guān)于C# KindEditor彈出層的資料請關(guān)注腳本之家其它相關(guān)文章!

相關(guān)文章

  • Unity3D實現(xiàn)自動尋路

    Unity3D實現(xiàn)自動尋路

    這篇文章主要為大家詳細(xì)介紹了Unity3D實現(xiàn)自動尋路,文中示例代碼介紹的非常詳細(xì),具有一定的參考價值,感興趣的小伙伴們可以參考一下
    2020-07-07
  • WPF實現(xiàn)多窗口多線程的實戰(zhàn)詳解

    WPF實現(xiàn)多窗口多線程的實戰(zhàn)詳解

    在WPF應(yīng)用程序開發(fā)中,UI操作通常運行在主線程上,這使得復(fù)雜的計算或長時間運行的任務(wù)容易阻塞界面,導(dǎo)致用戶體驗下降,本文將深入探討如何在新線程中創(chuàng)建并顯示W(wǎng)PF窗口,分析其中的關(guān)鍵技術(shù)點,需要的朋友可以參考下
    2025-08-08
  • C#實現(xiàn)連接SQL Server2012數(shù)據(jù)庫并執(zhí)行SQL語句的方法

    C#實現(xiàn)連接SQL Server2012數(shù)據(jù)庫并執(zhí)行SQL語句的方法

    這篇文章主要介紹了C#實現(xiàn)連接SQL Server2012數(shù)據(jù)庫并執(zhí)行SQL語句的方法,結(jié)合實例形式較為詳細(xì)的分析了C#連接SQL Server2012數(shù)據(jù)庫并執(zhí)行查詢、插入等操作的相關(guān)實現(xiàn)技巧,需要的朋友可以參考下
    2017-10-10
  • C#程序最小化到托盤圖標(biāo)操作步驟與實現(xiàn)代碼

    C#程序最小化到托盤圖標(biāo)操作步驟與實現(xiàn)代碼

    設(shè)置窗體屬性showinTask=false;加notifyicon控件notifyIcon1,為控件notifyIcon1的屬性Icon添加一個icon圖標(biāo);添加窗體最小化事件(首先需要添加事件引用)接下來介紹實現(xiàn)代碼,感興趣的朋友可以研究下
    2012-12-12
  • c#中?的六種用途

    c#中?的六種用途

    ? 是一個多用途的符號,具有多種不同的用途,本文主要介紹了c#中?的六種用途,具有一定的參考價值,感興趣的可以了解一下
    2025-04-04
  • C#操作SQLite實現(xiàn)數(shù)據(jù)的增刪改查

    C#操作SQLite實現(xiàn)數(shù)據(jù)的增刪改查

    SQLite是一個輕量級、跨平臺的關(guān)系型數(shù)據(jù)庫,在小型項目中,方便,易用,同時支持多種開發(fā)語言。本文將用C#語言對SQLite 的一個封裝,實現(xiàn)數(shù)據(jù)的增刪改查。需要的可以參考一下
    2022-01-01
  • C#中多線程ManualResetEvent 與 AutoResetEvent 區(qū)別

    C#中多線程ManualResetEvent 與 AutoResetEvent 區(qū)別

    這篇文章主要介紹了C#中ManualResetEvent 與 AutoResetEvent 區(qū)別,文中通過示例代碼介紹的非常詳細(xì),對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧
    2020-07-07
  • 使用C#與SQL Server數(shù)據(jù)庫進(jìn)行交互的詳細(xì)步驟

    使用C#與SQL Server數(shù)據(jù)庫進(jìn)行交互的詳細(xì)步驟

    在C#中與數(shù)據(jù)庫進(jìn)行交互,通常使用ADO.NET(ActiveX Data Objects .NET)框架,ADO.NET是.NET Framework中用于數(shù)據(jù)訪問的一組類庫,它提供了多種用于連接和操作數(shù)據(jù)庫的方法,以下是使用C#與SQL Server數(shù)據(jù)庫進(jìn)行交互的詳細(xì)步驟,需要的朋友可以參考下
    2024-08-08
  • C#觀察者模式(Observer Pattern)實例教程

    C#觀察者模式(Observer Pattern)實例教程

    這篇文章主要介紹了C#觀察者模式(Observer Pattern),主要以一個實例的形式講述了C#觀察者模式的實現(xiàn)過程,詳細(xì)講述了接口的定義、通知及動作的實現(xiàn)方法,需要的朋友可以參考下
    2014-09-09
  • C#中 paint()與Onpaint()的區(qū)別

    C#中 paint()與Onpaint()的區(qū)別

    paint是事件onpaint方法onpaint方法是調(diào)用paint事件的,用哪一個,效果是一樣,就看那一個方便了內(nèi)部是這樣實現(xiàn)的:
    2013-04-04

最新評論

庆安县| 山西省| 阳曲县| 庄浪县| 深泽县| 时尚| 贵溪市| 巴塘县| 碌曲县| 彰化县| 搜索| 茶陵县| 桃源县| 东至县| 蛟河市| 龙陵县| 荆州市| 区。| 繁昌县| 南开区| 哈巴河县| 景宁| 凤凰县| 仁布县| 诏安县| 红河县| 万安县| 且末县| 乐东| 泊头市| 抚顺县| 吉林省| 通化县| 上蔡县| 静安区| 石台县| 兖州市| 察雅县| 延庆县| 武山县| 宜州市|