Click here to Skip to main content
Click here to Skip to main content

Fully JavaScript Enabled Editor

By , 7 Sep 2010
 

Images

  1. Editor

    screenshot1.jpg

  2. Inserting Links

    insertlink.jpg

  3. Inserting Images

    insertimage.jpg

  4. Inserting Table

    insertable.jpg

  5. Inserting Special Characters

    insertchars.jpg

Introduction

Well, I have tried a fully JavaScript enabled editor. Here I have updated it with more features.

Code

In the article, I am giving sample code. The full code is available in the zip file.

I have planned to release this editor as a product with more advanced features. So as of now for demo purposes, I have shown inserting links, images, table and special characters. All other features like inserting flash, media files, templates, saving templates and inserting all major HTML controls and context menu for the editor and for the controls and browser compatibility and handling postback events will be available in the licensed version.

Setting Color

function setColor(colorTo,x,y)
{
    editFrame.focus();
    editFrame.document.execCommand(colorTo,true, colorArray[x][y]);
    popDivId.style.display = "none";
}

Setting Font

function setFont(fontName)
{
    editFrame.focus();
    editFrame.document.execCommand("FontName", false, fontName);
    popDivId.style.display = "none";
}

Setting Font Size

function setFontSize(fontSize)
{
    editFrame.focus();
    editFrame.document.execCommand("FontSize", false, fontSize);
    popDivId.style.display = "none";
}

Setting General Action

function doAction(action)
{
    editFrame.focus();
    if(action == "ClearAll")
    {
        editFrame.document.execCommand("SelectAll",true);
        action = "Delete";
    }
    editFrame.document.execCommand(action,true);
}

Showing Dialog Boxes

function showDialog(link,w, h)//380, 125
{
    if(link == "li")
        link = "InsertLink.htm";
    else if(link == "sc")
        link = "SpecialChars.htm";
    var returnedTxt= showModalDialog(link,"", "dialogWidth:"+ 
		w +"px; dialogHeight:"+ h +"px; status:no; center:yes");
    editFrame.focus();
    if(returnedTxt)
    {
        var theRange = editFrame.document.selection.createRange();
        theRange.pasteHTML(returnedTxt);
    }
}

Showing Popup Windows

var cWnd;
function showInsertPopup(opt, w, h) // w=350, h=340
{
    var srcfile = "imgWindow.aspx";
    if(opt == "im")
        srcfile = "imgWindow.aspx";
    else if(opt == "tb")
        srcfile = "InsertTable.htm";
    var left = (window.screen.width - parseInt(w))/2;
    var top = (window.screen.height - parseInt(h))/2;
    if(cWnd)
        cWnd.close();
    cWnd = window.open(srcfile,"", "width="+ w +",height="+ 
	h +",location=no, status=no, top="+ top +", left="+ left);
}

Setting HTML Action

function doHtmlAction(atype)
{
    editFrame.focus();
    var selectedRegion = editFrame.document.selection.createRange();
    if(atype == "lower")
        selectedRegion.text = selectedRegion.text.toLowerCase();
    else if(atype == "upper")
        selectedRegion.text = selectedRegion.text.toUpperCase();
}

Points of Interest

  • Since Undo and Redo are again included
  • Also developed in VB.NET and PHP
  • Bugs in Font Size, Font Family, Forecolor, Backcolor are fixed

Conclusion

Thank you. I expect feedback from you, and you expect more from me.

License

This article, along with any associated source code and files, is licensed under The Code Project Open License (CPOL)

About the Author

Saleth Prakash
India India
Member
No Biography provided

Sign Up to vote   Poor Excellent
Add a reason or comment to your vote: x
Votes of 3 or less require a comment

Comments and Discussions

 
Hint: For improved responsiveness ensure Javascript is enabled and choose 'Normal' from the Layout dropdown and hit 'Update'.
You must Sign In to use this message board.
Search this forum  
    Spacing  Noise  Layout  Per page   
GeneralMy vote of 5memberMd. Touhidul Alam Shuvo20 Jun '11 - 17:47 
GeneralMy vote of 4memberGaurav Chaurasiya20 Sep '10 - 8:10 
GeneralMy vote of 4memberEric Xue (brokensnow)7 Sep '10 - 18:22 
Generalnot working IN MOZILLAmemberMember 365136526 Feb '10 - 1:17 
QuestionCan you provide more property for each control??memberJLKEngine00827 Nov '08 - 22:24 
QuestionWhy you removed Undo and Redo ???memberJLKEngine00827 Nov '08 - 20:41 
GeneralMy vote of 2memberAxelM27 Nov '08 - 20:24 
QuestionHow can you provide context menus for each controls?memberJLKEngine00827 Nov '08 - 20:21 
GeneralJavaScript editormemberMember 420697421 Oct '08 - 0:33 
GeneralThere is some bug in your new version!!memberJLKEngine00816 Oct '08 - 6:31 
QuestionHI,can you provide a popmenu for each html Control??memberJLKEngine00817 Sep '08 - 23:58 
General[Message Removed]memberMojtaba Vali8 Jun '08 - 17:56 
Questionhow to give a popmenu to textbox? [modified]memberJLKEngine0088 Jun '08 - 15:57 
GeneralColor choosing doesn't workmemberJose M. Menendez Poó6 Jun '08 - 3:48 
QuestionQuestion ???memberAbhijit Jana15 Jan '08 - 2:06 
GeneralInternet Explorer only I assumememberjmcglothlin13 Jan '08 - 5:36 

General General    News News    Suggestion Suggestion    Question Question    Bug Bug    Answer Answer    Joke Joke    Rant Rant    Admin Admin   

Permalink | Advertise | Privacy | Mobile
Web02 | 2.6.130516.1 | Last Updated 7 Sep 2010
Article Copyright 2008 by Saleth Prakash
Everything else Copyright © CodeProject, 1999-2013
Terms of Use
Layout: fixed | fluid