最近要用到ckeditor工具(jsp下),一开始运行得挺好的,在主流的浏览器下都能运行。可今天再用IE打开的时候,问题就来了。
在网上搜了一下 “land.contextmenu.options” ,有个人和我一样遇到了同样的问题,他的是在google浏览器下,可惜没有给出解决的办法。
经过自已的聪明+经验+运气,找到了原因——路径造成的(只是表面,真正的原因还不太清楚)。之前能运行的时候,我采用的是相对路径的方式来引入文件的。这里的“相对”指的是相对当前文件。也就是在jsp的顶部加入
<%
String path = request.getContextPath();
String basePath = request.getScheme()+"://"+request.getServerName()+":"+request.getServerPort()+path+"/";
%>
然后在 <head>中加入<base href="<%=basePath%>/admin">
因为我将CKeditor 放在上一层目录中,所在这样来引入CKeditor
<script type="text/javascript" src="../ckeditor/ckeditor.js"></script>
按这种方式来引入是没有问题的,可后来为了方便,我将“相对”改成了相对于“当前站点的根目录”,也就是在<head>中加入<base href="<%=basePath%>">
引入CKeditor
<script type="text/javascript" src="ckeditor/ckeditor.js"></script>
这两种方式在 firefox 、opera浏览器下都能很好的运行,可最后一种方式在IE下运行就报“land.contextmenu.options 为空或不是对象”。
当然采用绝对路径来引入CKeditor也是可以的,像<script type="text/javascript" src="<%=basePath%>/ckeditor/ckeditor.js"></script>
出象这种情况真的令人很费解,在这不得不再次呐喊:支持统一标准!