问题
Hi I've got a small problem with ckeditor, basically I need to make the editor run it's html cleanup command. Is there any way of doing this. At present it doesn't seem to run after I type some stuff into the source and then press save I would like it to tidy the html like it does in the 'normal' editor view Any ideas? Thanks Richard
here is some example code
<SCRIPT type=text/javascript src="http://www.johnpricephotography.co.uk/crawler.js">
/* Text and/or Image Crawler Script v1.5 (c)2009-2011 John Davenport Scheuer
as first seen in http://www.dynamicdrive.com/forums/
username: jscheuer1 - This Notice Must Remain for Legal Use
updated: 4/2011 for random order option, more (see below)
*/
</SCRIPT>
<div class="marquee" id="mycrawler2">
<img alt="Derby wedding photographer - masa restaurant wedding" src="http://johnprice.foliopic.com/images/3539/homepage//226.jpg" style="width: 204px; height: 162px" /> <img alt="Shottle Hall Derby by Nottingham wedding photographer, shottle hall wedding" src="http://www.nottinghamweddingphotography.co.uk/images/sites/3539/gallery/large/049_1314978790.jpg" style="width: 204px; height: 162px" /> <img alt="Shottle Hall wedding Derby wedding by Nottingham wedding photographer" src="http://www.nottinghamweddingphotography.co.uk/images/sites/3539/gallery/large/13150063462954.jpg" style="width: 204px; height: 162px" /> <img alt="derby conference centre wedding by nottingham wedding photographer" src="http://johnprice.foliopic.com/images/3539/homepage//146_1.jpg" style="width: 250px; height: 162px" /> <img alt="professional wedding photographer john price" src="http://johnprice.foliopic.com/images/3539/homepage//31.jpg" style="width: 181px; height: 162px" /> <img alt="Leicestershire wedding photographer john price" src="http://www.nottinghamweddingphotography.co.uk/images/sites/3539/gallery/normal/ian---jo--24-of-62-_1312848448.jpg" style="width: 223px; height: 162px" /> <img alt="Leicestershire wedding photographer john price" src="http://www.nottinghamweddingphotography.co.uk/images/sites/3539/gallery/normal/ian---jo--47-of-62-_1312849131.jpg" style="width: 124px; height: 162px" /> <img alt="Derby river lights holiday inn wedding by derby wedding photographer john price" src="http://www.nottinghamweddingphotography.co.uk/images/sites/3539/gallery/normal/112_1314726892.jpg" style="width: 164px; height: 162px" /> <img alt="alvaston park wedding from derby conference centre wedding" src="http://www.nottinghamweddingphotography.co.uk/images/sites/3539/gallery/normal/163_1311890753.jpg" style="width: 220px; height: 162px" /> <img alt="London uk wedding photographer" src="http://www.nottinghamweddingphotography.co.uk/images/sites/3539/gallery/normal/flashmo-800x450-30_1311894940.jpg" style="width: 215px; height: 162px" /> <img alt="London uk wedding photographer" src="http://www.nottinghamweddingphotography.co.uk/images/sites/3539/gallery/normal/flashmo-800x450-04_1311894907.jpg" style="width: 212px; height: 162px" /></div>
<div class="marquee">
</div>
<h1 align="center">
<font face="Times New Roman, Times, serif" size="4"><b><font size="5">By Nottingham Wedding Photographer - John Price, </font></b></font><br />
<span style="color: #a9a9a9"><font face="Times New Roman, Times, serif" size="4"><b><font size="5">'Give me a wedding and I will give you memories'</font></b></font></span></h1>
<table align="center" border="0" cellpadding="1" cellspacing="1" style="width: 800px">
<tbody>
<tr>
<td>
<p>
<br />
<span style="font-size: 14px"><font face="Times New Roman, Times, serif"><span style="color: #000000">Welcome to the website of Nottingham wedding photographer John Price. </span><span style="color: #000000">If you are browsing my website, the chances are that you already are or have recently become engaged. Congratulations. You are now both embarking on an exciting journey together and never before will you have so many choices to make, not least choosing a wedding photographer in nottingham or a wedding photographer in Derby or Leicester and beyond. </span></font></span></p>
</td>
</tr>
</tbody>
</table>
<div>
</div>
<SCRIPT type=text/javascript>
marqueeInit({
uniqueid: 'mycrawler2',
style: {
'padding': '2px',
'width': '840px',
'height': '160px'
},
inc: 10, //speed - pixel increment for each iteration of this marquee's movement
mouse: 'cursor driven', //mouseover behavior ('pause' 'cursor driven' or false)
moveatleast: 1,
noAddedSpace: false,
neutral: 106,
savedirection: true,
random: true
});
</SCRIPT><div>
</div>
<p>
<span style="font-size: 16px"><span style="font-family: arial, helvetica, sans-serif"> </span></span></p>
<p>
</p>
<table border="0" cellpadding="1" cellspacing="1" style="width: 800px">
<tbody>
<tr>
<td>
<p>
<strong><span style="font-size: 18px"><span style="font-family: arial, helvetica, sans-serif"><strong><span style="font-size: 18px"><span style="font-family: arial, helvetica, sans-serif">Nottingham wedding photographer - John Price<br />
Receives wedding photographer recommedation by Insight Magazine. </span></span></strong></span></span></strong></p>
<p style="text-align: center">
<strong><span style="font-size: 18px"><span style="font-family: arial, helvetica, sans-serif"> </span></span></strong></p>
<p>
<strong><span style="font-size: 18px"><span style="font-family: arial, helvetica, sans-serif"><span style="font-size: 12px"><span style="font-family: arial, helvetica, sans-serif">October 2011 edition of the Insight Magazine features a full page recommended article on the wedding photography services that I provide. </span></span></span></span></strong></p>
<p>
</p>
<p>
<span style="font-size: 12px"><span style="font-family: arial, helvetica, sans-serif">This is also a privilege for the beautiful bride and grooms which also feature in this article. The photos was all taken from real weddings that I photographed during 2011</span></span></p>
<p>
</p>
<p>
<span style="font-size: 12px"><span style="font-family: arial, helvetica, sans-serif">A big thank you to the couples featured.</span></span></p>
<p>
<span style="font-size: 12px"><span style="font-family: arial, helvetica, sans-serif">Wayne & Katey was married at the Derby Riverlights Holiday Inn, </span></span></p>
<p>
<span style="font-size: 12px"><span style="font-family: arial, helvetica, sans-serif">Ian & Jo were had an amazing wedding at Shottle Hall, Derby.. </span></span></p>
<p>
<span style="font-size: 12px"><span style="font-family: arial, helvetica, sans-serif">James & Kerry-Ann was married at the Derby Conference Centre.</span></span></p>
<p>
</p>
<p>
</p>
<p>
<span style="font-size: 12px"><span style="font-family: arial, helvetica, sans-serif">You can view a pdf copy of this interview <a href="http://www.johnpricephotography.co.uk/Nottingham Wedding Photographer.pdf"><strong><span style="color: #0000ff"><span style="font-size: 14px">Here</span></span></strong></a>.or see an image <strong><a href="http://www.nottinghamweddingphotography.co.uk/images/sites/3539/gallery/large/1317302692.jpg"><span style="color: #0000ff"><span style="font-size: 14px">Here</span></span></a></strong></span></span></p>
</td>
<td style="text-align: center">
<img alt="Nottingham Wedding Photographer Recommended By Insight Magazine" src="http://www.nottinghamweddingphotography.co.uk/images/sites/3539/gallery/normal/1317297874.png" style="width: 264px; height: 187px" /></td>
</tr>
</tbody>
</table>
<p>
</p>
<p>
</p>
<p>
</p>
<p>
</p>
<p>
</p>
<p>
</p>
<p>
</p>
<p>
</p>
<p style="text-align: center">
</p>
<p>
<span style="font-size: 12px"><span style="font-family: arial, helvetica, sans-serif">Wedding photographer in Nottingham, Wedding photographer in Derby, Wedding photographer in leicester.</span></span></p>
<p>
<font face="Times New Roman, Times, serif"><font color="#666666"><font color="#666666">John Price is a Nottingham NG based wedding photographer who enjoys capturing that special moment that you know you can look back on time and time again. As a Nottingham wedding photographer, I make no distinction between a Church or Civil Ceremony, Registry Office or Civil Partnerships. Every wedding commands the very best.<span style="display: none"> </span></font></font></font></p>
<p>
<font face="Times New Roman, Times, serif"><font color="#666666">Nottingham Wedding Photography, Nottingham Boudoir Photography, Nottingham Portrait Photography, Nottingham Trash The Dress Photography Covering not just Nottingham, Mansfield, Derby, Leicester, Lincolnshire, Peterborough but the whole of the UK</font></font> <span style="display: none"> <span style="display: none"> </span></span></p>
<p>
</p>
<p>
</p>
<p>
<a href="http://www.nottinghamweddingphotography.co.uk/article/shottle-hall-wedding-photos-of-ian---jo-1963">Shottle Hall Wedding Photos by Derby Wedding Phototographer John Price Photography at shottle hall </a></p>
<p>
<a href="http://www.nottinghamweddingphotography.co.uk/article/the-wedding-of-james---lisa-at-rufford-abbey-country-park-2144">Rufford Abbey Wedding Photos by Nottingham Wedding Phototographer Nottingham Rufford Abbey Country Park.</a></p>
<p>
<a href="http://www.nottinghamweddingphotography.co.uk/article/masa-restaurant-wedding--the-old-chapel--mark---anna-1915">Masa Restaurant Wedding photos Derby wedding photography at Massa Restaurant.</a></p>
<p>
<a href="http://www.nottinghamweddingphotography.co.uk/article/the-derby-conference-centre-wedding---james---kerry-ann-1911">The Derby Conference Centre Wedding photos by Derby wedding photographer John Price Photography</a></p>
<p>
<a href="http://www.nottinghamweddingphotography.co.uk/article/the-wedding-of-craig---sarah-at-the-nottingham-council-house-1906">Nottingham Council House Wedding Photos Photographer</a></p>
<p>
<a href="http://www.nottinghamweddingphotography.co.uk/page/nottingham-boudoir-photographer-1949">Nottingham Boudoir, Derby Boudoir, Leicester Boudoir Photographer</a></p>
How this works but what I want to do is fix the html if there is a problem. Basically what happens is that this html gets saved into a hidden element and then when the user clicks save it all gets sorted out. To be honest thinking about it now it's prob not the best way to process this but at present just trying to fix the problem. Richard
回答1:
Please, try to do the following before you save(just to process data with CKEditor native data processor):
var yourEditor = CKEDITOR.instances.yourEditor;
// retrieve current data from editor and process it with its dataprocessor
var formattedDataForWysiWyg = yourEditor.dataProcessor.toHtml(yourEditor.getData());
// "decode" content processed by ckeditor
var sourceData = yourEditor.dataProcessor.toDataFormat(formattedDataForWysiWyg);
// set formatted data back
yourEditor.setData(sourceData);
Sure, it'll be perfomance hit if you do it frequently.
UPDATE: Sorry, I misled you a bit, but after you mentioned "{cke_protected}" I remembered. So, "toHtml" method of dataProcessor does the following: fixes broken html and wraps protected elements(scripts, flash) into special code constructions to prohibit editing through wysiwyg mode, but when the same html should be displayed in source mode, editor uses "toDataFormat" method of dataProcessor to remove all ckeditor-related code constructions. So, see my update above.
UPDATE 2: New solution works for both 3.6.2 and 3.5.3 versions of CKEditor.
来源:https://stackoverflow.com/questions/8973155/tidying-html-with-ckeditor