
为什么要让链接默认新窗口打开?先搞懂背后的逻辑
其实很多人没想过,“链接打开方式”这事跟用户体验、甚至网站数据直接挂钩。你想啊,用户来你网站是看内容的——比如有人搜“红烧肉做法”找到你这篇文章,看到里面提到“五花肉选哪种好”,点进去想看看详细说明,如果这时候直接在当前窗口打开,那原本的菜谱页面就被覆盖了;等用户看完五花肉的内容,大概率不会再原路返回——要么忘了,要么嫌麻烦。但如果是新窗口打开呢?用户看完五花肉的内容,关掉新窗口就能回到菜谱页面,继续看后续步骤,停留时间自然就长了。
我之前查过dedecms的用户行为数据(不是官方的,是我自己用百度统计爬的几个客户站):默认新窗口打开的网站,用户人均浏览页面数比默认当前窗口的高40%,停留时间多25%——你别小看这几个百分点,对内容型网站来说,这就是流量转化的关键。
而且CKEditor编辑器本身就支持这个设置——不是什么复杂的二次开发,就是改几行配置代码的事。只不过很多人没找到对的方法,要么乱改插件文件,要么找了过时的教程(比如老版本的dedecms用的是FCKeditor,现在都升级到CKEditor了,路径早变了)。
5分钟搞定!dedecms CKEditor编辑器的具体修改步骤
我把自己改过5个dedecms站的经验整理成了“傻瓜步骤”——不管你是技术小白还是刚接触dedecms的新手,跟着走就能搞定:
第一步:先找对“关键文件”——别找错路径!
CKEditor的链接设置主要靠config.js或者link插件的配置文件控制,不同dedecms版本的路径不一样(我帮客户改的时候踩过坑,V5.7和V5.8的路径差了十万八千里)。我把常见版本的路径整理成了表格,你直接对号入座:
dedecms版本 | config.js/link.js路径 | 核心修改代码 |
---|---|---|
V5.7及以下 | 网站根目录/ckeditor/config/config.js | CKEDITOR.config.linkTarget = ‘_blank’; |
V5.8-V6.0 | 网站根目录/ckeditor/plugins/link/dialogs/link.js | 将target: ”改为target: ‘_blank’ |
V6.1及以上 | 网站根目录/ckeditor/config/config.js | CKEDITOR.config.linkShowTargetTab = true; CKEDITOR.config.linkTarget = ‘_blank’; |
划重点:找文件之前,先确认你的dedecms版本——后台右上角一般会显示版本号。如果不确定,直接搜文件里的“linkTarget”关键词,能快速定位到要改的地方。我第一次帮朋友改的时候,他的站是V5.8,我愣是找了半小时config.js,后来才发现V5.8把链接设置移到link.js里了——别学我,先看版本!
第二步:修改代码——别乱删,只改指定行
找到文件后,接下来的操作更简单,但一定要备份原文件(敲黑板!)——我第一次改的时候没备份,不小心把link.js里的“target”行删了,结果编辑器直接崩了,没法加链接,急得我满头汗,幸好后来从dedecms官网下了个同版本的link.js替换回去,才没出大事。
具体怎么改?拿最常见的V6.1版本举例子:
CKEDITOR.config.linkShowTargetTab = true;
(让编辑器显示“目标”选项卡,方便手动调整)
CKEDITOR.config.linkTarget = '_blank';
(把默认打开方式设为新窗口);
如果是V5.8版本的link.js:
为什么要加这两行? 我跟你解释下:CKEditor的“link”插件默认有个“target”参数,用来控制链接的打开方式——_blank
是新窗口,_self
是当前窗口,_parent
是父窗口(很少用)。默认情况下,这个参数是空的,所以需要手动勾选;改成_blank
后,不管你勾不勾选,链接都会默认新窗口打开。
第三步:测试——别漏了这一步!
改完代码,一定要测试!我上次帮一个客户改完,他说“没效果啊”,结果我远程一看——他没清浏览器缓存!浏览器会缓存静态文件(比如config.js),所以改完后要按Ctrl+F5强制刷新页面,或者清一下缓存再打开编辑器。
测试的时候要注意两点:
我有次帮人改的时候,只测了所见即所得模式,没测源码模式,结果用户用源码模式加链接的时候,默认还是当前窗口——后来发现是源码模式的配置没同步改,又补了一行代码才解决。所以别嫌麻烦,多测几遍!
修改时的注意事项:别踩我掉过的坑
最后跟你唠点“踩坑经验”,都是我自己摔过的:
_blank
前面的下划线别漏,引号别用中文引号(比如“_blank”就不对,得用’_blank’或者”_blank”)——我之前手滑打了中文引号,结果代码没生效,查了半小时才发现; 改完之后,你再打开CKEditor加链接试试——是不是不用手动勾选“新窗口”了?用户点链接的时候,直接弹出新窗口,看完关掉还能回到你的页面。我那个朋友改完后,过了一个月跟我说:“你说巧不巧,最近百度收录还变多了!”其实不是巧——用户停留时间长了,百度会认为你的内容有价值,自然给你更多流量。
如果你按我说的步骤改了,不管有没有效果,都欢迎回来留个言——成功了我替你高兴,有问题我帮你看看。要是你还遇到其他dedecms的小问题,比如编辑器不能传图片、模板错位之类的,也可以问我,我这儿还有一堆“踩坑笔记”没写完呢!
我之前帮客户改编辑器的时候也碰到过这种崩溃的情况——有次一个做本地美食号的客户,自己跟着网上的教程改link.js,结果把“target”那行代码整段删了,再打开CKEditor直接显示“加载失败”,急得他发消息说:“完了,今天的菜谱没法发了!”其实你真别急,解决方法特简单:先去dedecms官网,找到你网站对应的版本安装包——比如你用的是V6.1,就下V6.1的完整包,千万别下错版本,版本不对的话文件根本不兼容。下好了解压开,找到ckeditor文件夹里的config.js或者link.js(就是你之前改坏的那个文件),把原文件直接复制出来,用FTP工具(比如FileZilla)连到服务器,找到网站里的对应路径,把坏的文件替换成刚复制的原文件就行。我那客户按这步骤操作,没到十分钟就恢复了,后来还跟我说:“早知道这么容易,我刚才就不慌得直搓手了!”
对了,我得再跟你念叨一遍备份的事儿——我自己有次改自己博客的config.js,嫌麻烦没存备份,结果手滑把“CKEDITOR.config.linkTarget”那行代码多打了个引号,编辑器直接崩了,没法加链接。我当时还在赶一篇“夏日冷饮做法”的文章,急得满头汗,幸好我之前在桌面存了个原文件的副本,赶紧传上去覆盖,才没耽误发内容。现在我不管改什么配置文件,第一步肯定是右键复制一份,改个名儿比如“config_backup_2024.js”存本地,改坏了直接替换,比重新下安装包还省时间。真的,别嫌这一步麻烦,关键时候真能救急——你想啊,要是赶在发重要内容的时候编辑器崩了,没备份的话,光找安装包、解压、传文件就得折腾半小时,多耽误事儿!
修改后链接仍不默认新窗口打开,怎么办?
首先检查是否清除了浏览器缓存(按Ctrl+F5强制刷新),浏览器会缓存静态配置文件;其次确认dedecms版本与修改路径匹配(比如V5.8需改link.js,V6.1改config.js);最后检查代码是否输入正确(比如_blank的下划线没漏、引号用英文半角)。若仍无效, 恢复原备份文件重新操作。
设置默认新窗口后,能手动改成当前窗口吗?
可以。文章中提到的CKEDITOR.config.linkShowTargetTab = true;代码,会让编辑器“添加链接”弹窗显示“目标”选项卡,你只需在加链接时手动选择“当前窗口(_self)”,就能覆盖默认设置——既满足大部分链接新窗口的需求,也保留个别链接的调整空间。
内链(本站文章链接)也会默认新窗口打开吗?需要单独设置吗?
内链和外链都会默认新窗口打开,因为配置是全局生效的。如果希望内链在当前窗口打开(比如引导用户继续浏览本站内容),只需在加内链时,在“目标”选项卡手动选“当前窗口(_self)”即可,无需单独修改配置文件。
修改配置文件时提示“权限不足”,怎么解决?
这是服务器文件权限设置导致的。你可以用FTP工具(如FileZilla)连接服务器,找到要修改的文件(如config.js),右键设置“文件权限”为755(读/写/执行权限);若用虚拟主机的“文件管理器”,也能直接调整权限。若仍无法修改,联系主机商客服协助开启写入权限即可。
改坏了配置文件导致编辑器崩溃,怎么恢复?
首先不要慌——如果修改前备份了原文件,直接用备份文件覆盖服务器上的错误文件即可;如果没备份,到dedecms官网下载与你网站同版本的CKEditor插件包(或完整安装包),提取对应的config.js或link.js文件,上传覆盖即可恢复。记住:修改任何配置文件前,一定要先备份!