Cách dùng CKEditor trong ASP.NET


Từ: 21:15 11/09/2012
Bài: 23
Cảm ơn: 18
Thích: 2

Xin chào mọi người.

Tôi thấy forum mình cũng dùng CKEditor để tích hợp vào trang web nên muốn hỏi cách sử dụng.

Có 1 ví dụ sau:

Dùng CKEditor để viết nội dung 1 bài báo nhưng khi lưu vào csdl (SQL Server) thì lưu cả mã html,css + nội dung.

Tôi muốn hỏi cách làm sao để tách 1 đoạn đầu của nội dung bài viết làm mô tả cho bài viết đó (lấy ra từ csdl hoặc tách ra để lưu vào 1 trường dl mới ).

Mong mọi người giúp đỡ. Xin cảm ơn.

ThangNM

 

Label
Từ: 10:32 14/06/2012
Bài: 112
Cảm ơn: 124
Thích: 18

Theo ý kiến cá nhân CKEditor.Text sẽ lưu dạng <p>Nội dung</p>

Mình vote substring <p>Nội dung</p> là đc ^_^

 

Label
Từ: 21:15 11/09/2012
Bài: 23
Cảm ơn: 18
Thích: 2

rất cám ơn bạn nhưng nó lưu đâu chỉ có mình thẻ <p></p>.

Bạn coi ngay trên cái comment của forum mình có bao nhiêu thứ ảnh(<img>), link (<a>), <b>, <i>, <strong>,<table>....

làm sao mà lọc đc hết.

Label
Từ: 21:47 10/08/2012
Bài: 38
Cảm ơn: 45
Thích: 8

Vấn đề em cần là remove những tag đó đi.

Cách làm thì:

  1. Xử lý xâu (tự làm cũng không khó nhưng dài)
  2. Xử lý xâu dùng Regular Expression: hơi khó viết biểu thức RegEx và chạy chậm (người ta nói thế)
  3. Dùng DOM ở client tách innerText của document trong editor ra rồi gửi text đó lên server
  4. Dùng một số free library ..... (nên tự viết nếu muốn tiến xa)
Label
Từ: 19:34 09/08/2012
Bài: 94
Cảm ơn: 127
Thích: 50

Nếu muốn lấy 1 đoạn văn bản làm mô tả description thì có 2 việc.

1- Loại bỏ HTMl trong văn bản (Tham khảo strip_tags)

2- Cắt bỏ  1 đoạn text là xong. (Tham khảo substr)

3- Chèn nó vào META TAG description.

Mình chỉ biết về PHP, còn ASP.Net thì mình hơi mù màu.  diễn đàn thì hỏi thầy DAICA.

Việc dùng CKEDITOR hay bất kỳ bộ gõ nào ko quan trọng, góp ý biết đâu giúp bạn đc tư tưởng.

Label
Từ: 21:15 11/09/2012
Bài: 23
Cảm ơn: 18
Thích: 2

Cám ơn mọi người đã cho keyword để search. Và search đc mấy cái dùng đc chia sẻ cho những người cần.

1. Javascript: 

  <script>
    function strip_tags(str){
        t = str.replace(/<(\/)?(html|head|title|body|h1|h2|h3|h4|h5|h6|p|br|hr|  pre|em|strong|code|b|i|a|ul|li|ol|dl|dd|table|tr|t  h|td)([^>]*)>/gi, "");
        t = t.replace(/<(\/)?(iframe|frameset|form|input|select|option|textar  ea|blackquote|address|object)([^>]*)>/gi, "");
        document.getElementById("#t").innerHTML = t;
    }
</script>
 
.2 C# (có 3 hàm theo thứ trên xuống dưới. code nhiều thì tốc độ convert nhanh :D)
public static string RemoveHtmlTagsUsingCharArray(this string htmlString)
{
var array = new char[htmlString.Length];
var arrayIndex = 0;
var inside = false;
foreach (var @let in htmlString)
{
if (let == '<')
{
inside = true;
continue;
}
if (let == '>')
{
inside = false;
continue;
}
if (inside) continue;
array[arrayIndex] = let;
arrayIndex++;
}
return new string(array, 0, arrayIndex);
}

 

 

 

static readonly Regex HtmlRegex = new Regex("<.*?>", RegexOptions.Compiled);
public static string RemoveHtmlTagsUsingCompiledRegex(this string htmlString)
        {
            var result = HtmlRegex.Replace(htmlString, string.Empty);
            return result;
        }
 

 

 

public static string RemoveHtmlTagsUsingRegex(this string htmlString)
        {
            var result = Regex.Replace(htmlString, "<.*?>", string.Empty);
            return result;
        }