Hi,
I'm currently fckeditor to edit the body of webpage. My problem is that in the HTML i have image with rollover and when I pass the mouse over I get an javascript error.
Did someone know how to give the definition of my javascript to the editor ? Or how to avoid the javascript error to popup and not by disabling javasript error ?
Here my code:
<p>
<table cellspacing="0" cellpadding="0" width="100%" border="0">
<tbody>
<tr>
<td valign="top"> </td>
<td valign="top" align="right" width="40"><
a onmouseover="MM_swapImage('ImageTop8','','/Image/boutons/btn_top_1_Fr.gif',1)" onmouseout="MM_swapImgRestore()" href="#top">
<img id="ImageTop" height="36" alt="" width="28" border="0" name="ImageTop8" src="/Image/boutons/btn_top_0_Fr.gif" /></a></td>
</tr>
</tbody>
</table>
</p>
Thanks
I'm currently fckeditor to edit the body of webpage. My problem is that in the HTML i have image with rollover and when I pass the mouse over I get an javascript error.
Did someone know how to give the definition of my javascript to the editor ? Or how to avoid the javascript error to popup and not by disabling javasript error ?
Here my code:
<p>
<table cellspacing="0" cellpadding="0" width="100%" border="0">
<tbody>
<tr>
<td valign="top"> </td>
<td valign="top" align="right" width="40"><
a onmouseover="MM_swapImage('ImageTop8','','/Image/boutons/btn_top_1_Fr.gif',1)" onmouseout="MM_swapImgRestore()" href="#top">
<img id="ImageTop" height="36" alt="" width="28" border="0" name="ImageTop8" src="/Image/boutons/btn_top_0_Fr.gif" /></a></td>
</tr>
</tbody>
</table>
</p>
Thanks
RE: Editor execute javascript
FCKConfig.ProtectedSource.Add( /<script[\s\S]*?\/script>/gi ) ; // <SCRIPT> tags.
Which should allow you to have javascript in your editor instance.
If you don't trust the people entering info, you might consider doing this with javascript outside the editor using the image ID tags or some such.
RE: Editor execute javascript
I have also test to put an alert('') that should popup on the editor load. See code below.
So I think that the editor know "javascript" so went everything is reder he can do mouseover but don't load it, so the function of the mouseover don't existe in memory.
Thank for you tips
CODE
<script type="text/javascript">
function MM_swapImgRestore() { //v3.0
var i,x,a=document.MM_sr; for(i=0;a&&i<a.length&&(x=a[i])&&x.oSrc;i++) x.src=x.oSrc;
}
function MM_preloadImages() { //v3.0
var d=document; if(d.images){ if(!d.MM_p) d.MM_p=new Array();
var i,j=d.MM_p.length,a=MM_preloadImages.arguments; for(i=0; i<a.length; i++)
if (a[i].indexOf("#")!=0){ d.MM_p[j]=new Image; d.MM_p[j++].src=a[i];}}
}
function MM_findObj(n, d) { //v4.01
var p,i,x; if(!d) d=document; if((p=n.indexOf("?"))>0&&parent.frames.length) {
d=parent.frames[n.substring(p+1)].document; n=n.substring(0,p);}
if(!(x=d[n])&&d.all) x=d.all[n]; for (i=0;!x&&i<d.forms.length;i++) x=d.forms[i][n];
for(i=0;!x&&d.layers&&i<d.layers.length;i++) x=MM_findObj(n,d.layers[i].document);
if(!x && d.getElementById) x=d.getElementById(n); return x;
}
function MM_swapImage() { //v3.0
var i,j=0,x,a=MM_swapImage.arguments; document.MM_sr=new Array; for(i=0;i<(a.length-2);i+=3)
if ((x=MM_findObj(a[i]))!=null){document.MM_sr[j++]=x; if(!x.oSrc) x.oSrc=x.src; x.src=a[i+2];}
}
alert('yes');
</script>
<p>
<table cellspacing="0" cellpadding="0" width="100%" border="0">
<tbody>
<tr>
<td valign="top"> </td>
<td valign="top" align="right" width="40"><a onmouseover="MM_swapImage('ImageTop8','','/_clients/oratoire/website01/library/Image/boutons/btn_top_1_Fr.gif',1)" onmouseout="MM_swapImgRestore()" href="#top"><img id="ImageTop" height="36" alt="" width="28" border="0" name="ImageTop8" src="/_clients/oratoire/website01/library/Image/boutons/btn_top_0_Fr.gif" /></a></td>
</tr>
</tbody>
</table>
</p>
RE: Editor execute javascript
I had this problem long ago, I think that I did left a bug filed and until this is internally fixed someday I preprocess the html replacing onclick= with _onclick= so the events don't get fired and I put them back before storing to the db.
RE: Editor execute javascript