FCKeditor in FCKeditor - WYSIWYG HTML editor 6.2
File
fckeditor.popup.html
View source
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<title>FCKeditor</title>
<script type="text/javascript">
document.write('<scr' + 'ipt src="' + window.opener['Drupal'].settings.basePath + 'misc/jquery.js"></scr' + 'ipt>');
// #### URLParams: holds all URL passed parameters (like ?Param1=Value1&Param2=Value2)
var FCKURLParams = new Object() ;
var aParams = document.location.search.substr(1).split('&') ;
for ( var i = 0 ; i < aParams.length ; i++ )
{
var aParam = aParams[i].split('=') ;
var sParamName = aParam[0] ;
var sParamValue = aParam[1] ;
FCKURLParams[ sParamName ] = sParamValue ;
}
// It is preferable to have the oFCKeditor object defined in the opener window,
// so all the configurations will be there. In this way the popup doesn't need
// to take care of the configurations "clonning".
var oFCKeditor = window.opener[ FCKURLParams[ 'var' ] ] ;
oFCKeditor.Width = '100%' ;
oFCKeditor.Height = '100%' ;
if (FCKURLParams[ 'teaser' ]) {
var text = window.opener.document.getElementById( FCKURLParams[ 'teaser' ] ).value ;
if (text.length > 0) {
text = text + '\n<!--break-->\n';
}
oFCKeditor.Value = text + window.opener.document.getElementById( FCKURLParams[ 'el' ] ).value ;
} else {
oFCKeditor.Value = window.opener.document.getElementById( FCKURLParams[ 'el' ] ).value ;
}
function FCKeditor_trim(text) {
return text.replace(/^\s+/g, '').replace(/\s+$/g, '');
}
function Ok()
{
var oEditor = FCKeditorAPI.GetInstance( oFCKeditor.InstanceName ) ;
if (FCKURLParams[ 'teaser' ]) {
var text = oEditor.GetData( true );
var t = text.indexOf('<!--break-->');
var textarea = window.opener.document.getElementById( FCKURLParams[ 'el' ] );
var teaser = window.opener.document.getElementById( FCKURLParams[ 'teaser' ] );
// for now, do nothing when the body field is in joined mode
if(t != -1 && teaser.parentNode.style.display != 'none') {
teaser.value = FCKeditor_trim(text.slice(0,t));
textarea.value = FCKeditor_trim(text.slice(t+12));
} else {
teaser.value = '';
textarea.value = text;
}
} else {
window.opener.document.getElementById( FCKURLParams[ 'el' ] ).value = oEditor.GetData( true ) ; // "true" means you want it formatted.
}
window.opener.focus() ;
window.close() ;
}
var oEditor;
function Cancel()
{
var oEditor = FCKeditorAPI.GetInstance( oFCKeditor.InstanceName ) ;
if ( oEditor.IsDirty() )
{
if ( !confirm( 'Are you sure you want to cancel? Your changes will be lost.' ) )
return ;
}
window.close() ;
}
function FCKeditor_OnComplete( editorInstance )
{
oEditor = editorInstance;
var textarea = window.opener.document.getElementById( FCKURLParams[ 'el' ] );
if ($(textarea).attr('class').indexOf("filterxss2") != -1) {
$.post(window.opener['Drupal'].settings.basePath + 'index.php?q=fckeditor/xss', {
'text': oFCKeditor.Value,
'token': window.opener['Drupal'].settings.fckeditor.ajaxToken
},
function(text) {
oEditor.SetData(text);
}
);
}
}
</script>
</head>
<body>
<table width="100%" height="100%">
<tr>
<td height="100%">
<script type="text/javascript">
//image_assist integration
IaObj = window.opener.document.getElementById( 'img_assist-link-' + FCKURLParams[ 'el' ] );
if(IaObj){
IaObj.href = IaObj.href.replace("/load/textarea", "/load/fckeditor");
document.write( '<a className="img_assist-link" href='+ IaObj.href +' id="img_assist-link-' + FCKURLParams[ 'el' ] +'" style="display:none" /></a>' ) ;
}
// For now, it is not possible to retrieve the output HTML, so we must do it by
// hand. Future implementations of FCKeditor could bring a
// oFCKeditor.CreateHtml() function.
var textarea = window.opener.document.getElementById( FCKURLParams[ 'el' ] );
if ($(textarea).attr('class').indexOf("filterxss2") != -1) {
var initialHTML = '';
}
else {
var initialHTML = oFCKeditor.Value;
}
document.write( '<input type="hidden" id="' + oFCKeditor.InstanceName + '" name="' + oFCKeditor.InstanceName + '" value="' + oFCKeditor._HTMLEncode( initialHTML ) + '" style="display:none" />' ) ;
document.write( oFCKeditor._GetConfigHtml() ) ;
document.write( oFCKeditor._GetIFrameHtml() ) ;
</script>
</td>
</tr>
<tr>
<td>
<input type="button" value="Ok" onclick="Ok();" style="width:120px" />
<input type="button" value="Cancel" onclick="Cancel();" />
</td>
</tr>
</table>
</body>
</html>