Nieuw lid |
|
Hey,
Ik ben bezig met een cmssysteem te bouwen met daar in de fckeditor ( http://www.fckeditor.net )
Maar nu is er blijkbaar een raar probleem, ik heb al gezocht met google, maar ik vond geen oplossing voor het probleem...
Met javascript creëer ik dus een nieuwe div bovenop de gehele pagina, en die div, wordt er een formulier geplaatst met de fckeditor... Als je de eerste keer klikt om het formulier te krijgen met fck, werkt dat perfect, maar wanneer je een tweede keer klikt, wil het blijkbaar niet meer werken, het formulier komt wel te voorschijn, maar fck laadt niet en ik krijg deze error te zien:
Error:
Javascript:
<!--
function deleteBox(){
if(document.getElementById('fckBox')){
var box = document.getElementById('fckBox');
box.innerHTML = '';
box.style.display = "none";
document.body.removeChild(box);
}
}
function drawBox(value, instanceName, plcID){
deleteBox();
var e = document.createElement("div");
e.id = "fckBox";
document.body.appendChild(e);
fckBox = document.getElementById('fckBox');
var sHtml = '<form method="post" action="page.php?action=edit_lc">'
+'<input type="hidden" name="plcID" value="'+plcID+'" />'
+'<input type="hidden" id="'+instanceName+'" name="'+instanceName+'" value="'+value+'" />'
+'<input type="hidden" id="'+instanceName+'___Config" value="" />'
+'<iframe id="'+instanceName+'___Frame" src="../fck/editor/fckeditor.html?InstanceName='+instanceName+'&Toolbar=Default" width="650" height="700" frameborder="no" scrolling="no"></iframe>'
+'</form>';
fckBox.innerHTML = sHtml;
fckBox.style.display = 'block';
fckBox.style.position = "absolute";
//fckBox.style.left = document.getElementById('muisX').value+"px";
fckBox.style.top = document.getElementById('muisY').value+"px";
}
// Detect if the browser is IE or not.
// If it is not IE, we assume that the browser is NS.
var IE = document.all?true:false
// If NS -- that is, !IE -- then set up for mouse capture
if (!IE) document.captureEvents(Event.MOUSEMOVE)
// Set-up to use getMouseXY function onMouseMove
document.onmousemove = getMouseXY;
// Temporary variables to hold mouse x-y pos.s
var tempX = 0
var tempY = 0
// Main function to retrieve mouse x-y pos.s
function getMouseXY(e) {
if (IE) { // grab the x-y pos.s if browser is IE
tempX = event.clientX + document.body.scrollLeft
tempY = event.clientY + document.body.scrollTop
} else { // grab the x-y pos.s if browser is NS
tempX = e.pageX
tempY = e.pageY
}
// catch possible negative values in NS4
if (tempX < 0){tempX = 0}
if (tempY < 0){tempY = 0}
// show the position values in the form named Show
// in the text fields named MouseX and MouseY
document.getElementById('muisX').value = tempX
document.getElementById('muisY').value = tempY
return true
}
//-->
<!-- function deleteBox(){ if(document.getElementById('fckBox')){ var box = document.getElementById('fckBox'); box.innerHTML = ''; box.style.display = "none"; document.body.removeChild(box); } } function drawBox(value, instanceName, plcID){ deleteBox(); var e = document.createElement("div"); e.id = "fckBox"; document.body.appendChild(e); fckBox = document.getElementById('fckBox'); var sHtml = '<form method="post" action="page.php?action=edit_lc">' +'<input type="hidden" name="plcID" value="'+plcID+'" />' +'<input type="hidden" id="'+instanceName+'" name="'+instanceName+'" value="'+value+'" />' +'<input type="hidden" id="'+instanceName+'___Config" value="" />' +'<iframe id="'+instanceName+'___Frame" src="../fck/editor/fckeditor.html?InstanceName='+instanceName+'&Toolbar=Default" width="650" height="700" frameborder="no" scrolling="no"></iframe>' +'</form>'; fckBox.innerHTML = sHtml; fckBox.style.display = 'block'; fckBox.style.position = "absolute"; //fckBox.style.left = document.getElementById('muisX').value+"px"; fckBox.style.top = document.getElementById('muisY').value+"px"; } // Detect if the browser is IE or not. // If it is not IE, we assume that the browser is NS. var IE = document.all?true:false // If NS -- that is, !IE -- then set up for mouse capture if (!IE) document.captureEvents(Event.MOUSEMOVE) // Set-up to use getMouseXY function onMouseMove document.onmousemove = getMouseXY; // Temporary variables to hold mouse x-y pos.s var tempX = 0 var tempY = 0 // Main function to retrieve mouse x-y pos.s function getMouseXY(e) { if (IE) { // grab the x-y pos.s if browser is IE tempX = event.clientX + document.body.scrollLeft tempY = event.clientY + document.body.scrollTop } else { // grab the x-y pos.s if browser is NS tempX = e.pageX tempY = e.pageY } // catch possible negative values in NS4 if (tempX < 0){tempX = 0} if (tempY < 0){tempY = 0} // show the position values in the form named Show // in the text fields named MouseX and MouseY document.getElementById('muisX').value = tempX document.getElementById('muisY').value = tempY return true } //-->
Html:
<div id="alternate_0" onclick="drawBox('<p>blablabla</p>', '0', 0)">
<div id="alternate_0" onclick="drawBox('<p>blablabla</p>', '0', 0)">
Normaa lzou dus waneer je op de div "alternate_0" klikt, een nieuwe div moeten worden weergegeven met daarin de fckeditor, de eerste keer lukt dat, de 2e keer wordt de fckeditor niet geladen...
Je kan het probleem zien op http://www.piro.ws/pcms/admin/page.php
(klikken op een lorem ipsum tekst om de editor te laden, en dan nog een keertje klikken op een loremipsum tekst om het probleem te zien ;))
Alvast bedankt ;)
EDIT
Het probleem is opgelost... Ik plaats hieronder even wat heeft geholpen... dit kan misschien handig zijn voor mensen die fck willen gebruiken... ;)
function deleteBox(){
if(document.getElementById('fckBox')){
var box = document.getElementById('fckBox');
box.innerHTML = '';
box.style.display = "none";
document.body.removeChild(box);
__FCKeditorNS = null;
}
}
function deleteBox(){ if(document.getElementById('fckBox')){ var box = document.getElementById('fckBox'); box.innerHTML = ''; box.style.display = "none"; document.body.removeChild(box); __FCKeditorNS = null; } }
__FCKeditorNS = null; heeft het probleem dus opgelost...
|