欧美bbbwbbbw肥妇,免费乱码人妻系列日韩,一级黄片

C#結合JS修改解決KindEditor彈出層問題

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

問題現(xiàn)象

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

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

原因分析

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

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

范例運行環(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 核心文件進行查找修改,該文件存在于插件應用的根目錄:

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

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

C# 服務端更新

 在我的文章《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, 并在服務端 header 修改 sc.Attributes.Add("src", "/common/kindEditor/kindeditor.js?v="+timestamp);  的時間戳版引用,以便于調試修改和刷新。至此問題解決。 

小結

在調試成功完成后,可關閉時間戳版本引用方法以進行緩存操作,防止每次都重新加載文件內容。

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

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

到此關于修改解決 KindEditor 彈出層問題就介紹到這里,感謝您的閱讀,希望本文能夠對您有所幫助。

以上就是C#結合JS修改解決KindEditor彈出層問題的詳細內容,更多關于C# KindEditor彈出層的資料請關注腳本之家其它相關文章!

相關文章

  • WCF的異常處理

    WCF的異常處理

    這篇文章介紹了WCF處理異常的方法,文中通過示例代碼介紹的非常詳細。對大家的學習或工作具有一定的參考借鑒價值,需要的朋友可以參考下
    2022-05-05
  • WinForm入門與基本控件使用詳解

    WinForm入門與基本控件使用詳解

    本文主要介紹了WinForm入門與基本控件使用詳解,文中通過示例代碼介紹的非常詳細,對大家的學習或者工作具有一定的參考學習價值,需要的朋友們下面隨著小編來一起學習學習吧
    2022-06-06
  • 淺析WPF中Popup彈出層的使用

    淺析WPF中Popup彈出層的使用

    這篇文章將通過一個簡單的小例子,為大家詳細介紹一下如何在WPF開發(fā)中,通過Popup實現(xiàn)鼠標點擊彈出浮動??看翱?有需要的小伙伴可以了解下
    2024-01-01
  • C#調用Python腳本的簡單示例

    C#調用Python腳本的簡單示例

    這篇文章主要為大家詳細介紹了C#調用Python腳本的簡單示例,具有一定的參考價值,感興趣的小伙伴們可以參考一下
    2016-05-05
  • C#中讓控件全屏顯示的實現(xiàn)代碼(WinForm)

    C#中讓控件全屏顯示的實現(xiàn)代碼(WinForm)

    有時候需要讓窗口中某一塊的內容全屏顯示,比如視頻播放、地圖等等。經(jīng)過摸索,暫時發(fā)現(xiàn)兩種可行方法,如果有誰知道其他方法,敬請告知
    2012-04-04
  • c# wpf如何使用Blend工具繪制Control樣式

    c# wpf如何使用Blend工具繪制Control樣式

    這篇文章主要介紹了c# wpf如何使用Blend工具繪制Control樣式,幫助大家更好的理解和學習使用c#,感興趣的朋友可以了解下
    2021-03-03
  • C#中實現(xiàn)任意List的全組合算法代碼

    C#中實現(xiàn)任意List的全組合算法代碼

    這篇文章主要是介紹了.net C# 實現(xiàn)任意List的全組合算法實現(xiàn)代碼,需要的朋友可以參考下
    2013-05-05
  • C#9.0推出的4個新特性介紹

    C#9.0推出的4個新特性介紹

    這篇文章介紹了C#9.0推出的4個新特性,文中通過示例代碼介紹的非常詳細。對大家的學習或工作具有一定的參考借鑒價值,需要的朋友可以參考下
    2022-02-02
  • C#實現(xiàn)二叉查找樹

    C#實現(xiàn)二叉查找樹

    本文詳細講解了C#實現(xiàn)二叉查找樹的方法,文中通過示例代碼介紹的非常詳細。對大家的學習或工作具有一定的參考借鑒價值,需要的朋友可以參考下
    2022-04-04
  • 基于WPF實現(xiàn)帶蒙版的MessageBox消息提示框

    基于WPF實現(xiàn)帶蒙版的MessageBox消息提示框

    這篇文章主要介紹了如何利用WPF實現(xiàn)帶蒙版的MessageBox消息提示框,文中的示例代碼講解詳細,對我們學習或工作有一定幫助,需要的可以參考一下
    2022-08-08

最新評論