WELCOME TO BLOGGER VQGĐC

THÂN CHÀO QUÝ BẠN
CLICK HERE TO OPEN

Tất cả hình ảnh, những hoạt động cùng cơ sở Định Chuẩn rồi cũng cùng với thời gian rơi vào khoảng không
Nếu còn gì rớt lại chỉ là những tình cảm của những con người đã một thời làm việc chung dưới một mái nhà
mà nay đả tản mác khắp bốn phương trời
Ninh Vũ / Phòng Thí Nghiệm VQGĐC

Monday, May 27, 2013

Using execCommand( ) method and iframe to create my own Rich Text Editor for writing Vietnamese

Xử dụng execCommand( ) và iframe để tự tạo Rich Text Editor gõ tiếng Việt

execCommand () method của Microsoft dùng để kết hợp với designMode (introduced in IE 4) dùng trong iframe và cũng để kết hợp với contentEditable (introduced in IE 5.5) dùng trong div tag .
Do đó trong bài nầy chúng ta chỉ muốn dùng document.execCommand() iframe để tự minh thiết lập một Rich Text Editor  đơn giản có những điểm căn bản rất cần thiết để gõ chữ Việt.

Hiện nay execCommand() được hầu hết các browsers hổ trợ kể cả Mobile Safari va Android.
Syntax của execCommand() :
 expression.execCommand (comamd,uiBool,value)
command là tên của mệnh lệnh phải thi hành. Có tổng cộng 56 tên goị là 56 command identifiers.
Sau khi trắc nghiệm xử dụng, ngươi viết bài nầy nhận thấy có một số command identifiers không cho kết quả vì browser không hổ trơ.

uiBool  là optinal Boolean value cho biết command có xử dụng user interface hay không.
 Viết chữ true nếu có xử dụngViết chữ false nếu không. The default is false.
ui là user interface. The user interface is a program or set of programs laying above the operating system.
argument hoặc value là những gì chúng ta muốn chuyển đổi từ cái đang có của command.
 Nếu không muốn chuyển đổi thì viết chữ null . The default is null.

Thí dụ chữ viết màu đen, chúng ta muốn đổi sang màu đỏ hay màu xanh v.v…thì thay chữ argument bằng chữ red hay chữ blue

Nếu muốn giử màu đen thì viết null thay cho chữ argument.

Muốn viết được trong iframe chúng ta phải đặt ( we must set ) designMode= “on” trong một javascript function ( via javascript function ) như sau.
    var doc;
    function edit() {
    doc = frames['editor'].document;
    doc.designMode = "on"; }
Cách nầy bảo đảm hơn hết, không gặp trục trặc khi chúng ta muốn thay đổi cách tạo các buttons .Nhớ dùng chữ doc.

Muốn execCommand() hoạt động được trong div tag thì trong div tag phải viết thêm contentEditable= “true”

Người viết bài nầy sau khi trắc nghiệm cài MUDIM vào Iframe Rich Text Editor, tạo được Text Editor nầy dùng để gõ chữ Việt rất dễ dàng ..
Nếu cài MUDIM vào div tag Rich Text Editor thì không kết quả.

Ưu điểm của Editor nầy :
Khi thay đổi kiểu chữ, độ lớn chữ, màu chữ , độ đậm và độ nghiêng của chữ v.v… các chữ khác không bị ảnh hưởng vì xử dụng document.execCommand() document.focus().

Cái hay của execCommand() là nó chỉ vận hành trực tiếp trên yếu tố mà chúng ta muốn mà thôi nên không gây ảnh hưởng đến các yếu tố khác.
( execCommand()  only executes a command on the selection , and focus() takes the focus to the iframe editor and makes it active.).

Còn focus() method có nhiệm vụ làm cho editor trở thành active.
focus() method không có parameter và cũng không cho return.
                                    --------------------
                           Rich Text Editor nầy gồm có 2 phần.
Phần đầu có 2 javascript functions.
Một function dùng để set designMode= "on" function fontEdit() khác dùng để edit sự chọn lựa (selection) kiểu chữ,cở chữ,màu sắc của chữ v.v
Phần thứ hai.
* Trong phần nầy chúng ta viết code về sự chọn lựa (select  id=’font’, select id=’size’, select id=’color’ ) kiểu chữ,độ lớn chữ,màu sắc chữ…và cũng là chỗ để call function fontEdit() bằng cách dùng onchange
onChange="fontEdit('fontname',this[this.selectedIndex].value)"
onChange="fontEdit('fontsize',this[this.selectedIndex].value)"
onChange="fontEdit('For eColor',this[this.selectedIndex].value)"

* Kế tiếp chúng ta viết code các buttons. Dùng execCommand () method để vận hành những buttons nầy.
onclick="doc.execCommand('...');"

* Sau cùng là code của iframe và googlecode/mudim.javascript để chúng ta có thể gõ được tiếng Việt.



Muốn có Rich Text Editor nầy chúng ta viết code như bảng phía dưới.

Trong tag input type = “button” , nế́u viết đầy đú document.execCommand( ‘bold’ ) thì không chạy được. Phải rút ngắn thành chữ doc.execCommand( ‘bold’ ) mới ok.


JavaScript focus() method
Object phải được activated chúng ta mới có thể xử dụng được.Muốn activate object phải dùng focus() method.
Khi text field có focus thì curser liền xuất hiện trong text field và chúng ta mới có thể khởi sự viết trong text field.

Thí dụ.
 Khi làm highlite những chữ trong  textarea1 , textarea2 và click vào CLICK1,CLICK2 trong thí dụ dưới đây,chúng ta sẽ thấy rõ cách vận hàng của  javaScript focus() method.



Bốn phương pháp dùng gõ tiếng Việt.
Four methods used for typing vietnamese in Rich Text Editor


Phương Pháp               TELEX            V N I              VIQR              VIQR+
Sắc                                    as = á              a1 = á               a’ = á                a’ = á
Huyền                                af = à               a2 = à               a = à                 a = à
Hỏi                                     ar = ả               a3 = ả               a? = ả               a? = ả
Ngã                                    ax = ã              a4 = ã               a~ = ã               a~ = ã
Nặng                                  aj = ạ               a5 = ạ               a. = ạ                a. = ạ
Dấu ă                                aw = ă              a8 = ă               a( = ă                a( = ă
Dấu ư, ơ                           uw = ư              u7 = ư              u+ = ư              u* = ư
Dấu đ                                dd = đ               d9 = đ               dd = đ               dd = đ
Dấu â , ô,  ê              aa = â, oo = ô,          a6 = â              a^ = â                a^ = â

                                     ee = ê  

 Nếu xử dụng viet windows của Microsoft đã cài sẵn trong computer thì
 dùng những con số nằm phía trên những hàng chữ của keyboard và gõ như sau.
Trước khi gõ phải click chữ Tắt của MUDIM.

Số́ 1 là chữ ă , Số 2 là chữ â, Số 3 là chư ê, Số 4 là chữ ô
Số 5 là dấu huyền , Số 6 là dấu hỏi, Số 7 là dấu ngã, Số 8 là dấu sắc
Số 9 là dấu nặng, Số 0 là chữ đ, Dấu [  là chữ ư, Dấu ] là chữ ơ

updated August-13-2013

Sunday, May 12, 2013

How to create my own simplest Rich Text Editor for writing Vietnamese

TỰ XÂY DỰNG MỘT TEXT EDITOR ĐỂ GÕ CHỮ VIỆT
 Cho đến hiện nay có nhiều cách xây dựng một Rich Text Editor . Chung  qui mỗi Rich Text Editor phải có 2 phần .
* Phần thứ nhứt là khung để gõ chữ Tây hay chữ Việt .Tuỳ ý chúng ta tự chọn iframe tag hoặc div tag hoặc textarea tag .
Trong phần nầy chúng ta qui định kiểu chữ, độ lớn chữ, chữ viết đậm, chữ viết nghiêng, chữ gạch dưới ( underline) và kích thước của khung cần có để viết text
* Phần thứ hai là những nút goị là button đặt phía trên khung.
Dùng javascript functions có chứa  document.getElementById() hoặc document.execCommand() method để vận hành các nút nầy.
Dùng onclickonchange event để call các javascript functions
      Muốn dễ hiểu, trước hết chúng ta thực tập xây dựng hiện một editor rất đơn giản như sau.
Vì sẽ dùng editor nầy để gõ tiếng Việt có dấu nên chúng ta phải xử dụng textarea làm khung thì mới có thể cài được dễ dàng vào đó bộ gõ AVIM javascript của browser Google .
Nếu thiếu script code nầy thì chỉ gõ được tiếng Tây mà thôi

Nếu không muốn dùng AVIM thì dùng MUDIM viết trong script tag như sau sẽ có kết quả như nhau.

                     src="http://mudim.googlecode.com/files/mudim-0.8-r153.js"


Khuyết điểm : sự thay đổi kiểu chữ, độ lớn của chữ, chữ đậm nét, độ nghiêng v.v… không thể thực hiện được cho từng chữ một trong editor nầy vì mỗi khi  chung ta thay đổi thì toàn bộ bài viết trong editor đều thay đổi .
Muốn tránh khuyết điểm nầy thì phải dùng document.execCommand() method nhưng Google avim  không họat động.
Trong trường hợp nầy chúng ta phải dùng mudim script code của Google như sau thì không còn khuyết điểm như trên. 
src="http://mudim.googlecode.com/svn/trunk/mudim/mudim.js"




Bài kế tiếp : Xử dụng execCommand( ) và iframe để tự tạo Rich Text Editor gõ tiếng Việt