Want to protect your cyber security and still get fast solutions? Ask a secure question today.Go Premium

x
  • Status: Solved
  • Priority: Medium
  • Security: Public
  • Views: 1137
  • Last Modified:

TinyMCE / FCKEditor Live Preview

Is it possible to create a live preview of what is being typed in the editors?

So for instance on one side I have a div tag / table data cell and on the other side there is an editor that onchange / on key up the div tag will be populated.

I know FCKEditor has a preview but could this preview be done live?

Maybe some other editors can be of help as well, so I'm not really fussy with which editor has to be used.

Let me know if anything is not clear enough.

Thanks.
0
Rassac
Asked:
Rassac
  • 8
  • 3
  • 2
1 Solution
 
fouriceCommented:
Well it's not a existing editor or something, but the code snippet below perhaps gives you an idea what is possible. It's very simple, but as soon as you start typing in the textarea the text will be shown in a div with some style properties. Of course you can do anything you want with it.
<script>
	function setMessage()
	{
		document.getElementById('preview_tekst').innerHTML = document.getElementById('aMessage').value.replace(/\n/g, "<br>");
	}
</script>
<textarea id="aMessage" style="height:150px; width:300px" onkeyup="setMessage()"></textarea>
<div id="preview_tekst" style="font-family: Verdana; font-size: 10pt; color: #ff0000"></div>

Open in new window

0
 
RassacAuthor Commented:
Hi,

One problem I think I will face with  the code above is that it doesn't get the current data in the div tag for update in the input text field.

Haven't tested yet if I can implement the above example in an FCKEditor or any other editor. Will test it out and leave feedback.

In the meantime it would be grateful if you can adjust the code above to cater for the problem mentioned.

Thanks!
0
 
fouriceCommented:
Do you mean like this:
<textarea id="aMessage" style="height:150px; width:300px" onkeyup="setMessage()"></textarea>
<div id="preview_tekst" style="font-family: Verdana; font-size: 10pt; color: #ff0000">Some current data in the div...</div>
<script>
	function setMessage()
	{
		document.getElementById('preview_tekst').innerHTML = document.getElementById('aMessage').value.replace(/\n/g, "<br>");
	}
	document.getElementById('aMessage').value = document.getElementById('preview_tekst').innerHTML;
</script>

Open in new window

0
Technology Partners: We Want Your Opinion!

We value your feedback.

Take our survey and automatically be enter to win anyone of the following:
Yeti Cooler, Amazon eGift Card, and Movie eGift Card!

 
RassacAuthor Commented:
Yes that's it! :) I will let you know how it goes when I try to implement with an editor.

Thanks.
0
 
Ray PaseurCommented:
Just theorizing here, but I think I'm on the right track... You need an AJAX interface for this to work.  I sure hope you find one - it sounds like a VERY useful tool.  ~Ray
0
 
RassacAuthor Commented:
So do you suggest anything else Ray?
0
 
Ray PaseurCommented:
No, I'm not very conversant in AJAX - I just understand the concepts, but since this is posted in the AJAX zone you will be likely to get some answers here.  I'm looking forward to seeing what comes back!
0
 
RassacAuthor Commented:
Unfortunately it didn't work with TinyMCE - maybe I'm doing something wrong. The data from the div tag is inserted in the TinyMCE editor, however the live preview doesn't work. Here's my code snippet:
<form method="post" action="http://tinymce.moxiecode.com/dump.php?example=true">
	<textarea id="elm1" name="elm1" rows="15" cols="80" style="height:150px; width: 80%" onkeyup="setMessage()"></textarea>
 
	<br />
	<input type="submit" name="save" value="Submit" />
	<input type="reset" name="reset" value="Reset" />
 
</form>
 
<div id="preview_tekst" style="font-family: Verdana; font-size: 10pt; color: #ff0000">Some current data in the div...</div>
<script>
        function setMessage()
        {
                document.getElementById('preview_tekst').innerHTML = document.getElementById('elm1').value.replace(/\n/g, "<br>");
        }
        document.getElementById('elm1').value = document.getElementById('preview_tekst').innerHTML;
</script>

Open in new window

0
 
RassacAuthor Commented:
Also, I found out that the script doesn't work as soon as I add the below code in the head section:
<script type="text/javascript">
	tinyMCE.init({
		mode : "textareas",
		theme : "simple"
	});
</script>

Open in new window

0
 
RassacAuthor Commented:
Hi, I tried the same thing with fckeditor and the preview worked, however there's still a small problem. Text formatting is not applied in the text box.

Any help with this please?

Thanks. :)  
0
 
RassacAuthor Commented:
Just to clarify the above, FCKEditor can switch between Textarea and FCKEditor. The preview does not work from the FCKEditor. no wonder why not even the text formatting works.
0
 
fouriceCommented:
Can you post your latest code? I will try something as well, but it's possible this just doesn't work for FCKEditor.
0
 
RassacAuthor Commented:
Hi, I managed to find the solution for TinyMCE. I will paste the code later on.
0

Featured Post

Concerto Cloud for Software Providers & ISVs

Can Concerto Cloud Services help you focus on evolving your application offerings, while delivering the best cloud experience to your customers? From DevOps to revenue models and customer support, the answer is yes!

Learn how Concerto can help you.

  • 8
  • 3
  • 2
Tackle projects and never again get stuck behind a technical roadblock.
Join Now