调教wordpress 3.2 的插入链接按钮

WordPress评论链接重定向跳转(修正代码)一文中说过修改quicktags.js中的 edInsertLink 函数来实现在后台插入链接时自动加上前缀URL,升级到3.2时发现HTML编辑器和可视化编辑器的插入链接按钮一个模样了。
很快,我在wp-includes/js/tinymce/plugins/wplink/js 发现了可疑目标。于是先拿wplink.dev.js开刀实验。
在第166行处,我把它修改成了这样:

1
2
3
4
5
6
7
8
    // Build HTML
            if( /^http:\/\/ihacklog\.com/.test(attrs.href) )
                html = '<a href="' + attrs.href + '"';
            else
            {
                html = '<a href="http://ihacklog.com/l.php?url=' + encodeURIComponent( attrs.href ) + '"';
                attrs.target="_blank";
            }

如果是站内链接,一率不加重定向前缀,不强制在新窗口中打开,否则,强制加重定向前缀和在新窗口中打开。用encodeURIComponent编码链接是为了兼容lightspeed 的httpd服务器。

下面开始真枪实弹了,拿wplink.js开刀,搜索 htmlUpdate:function,然后修改相应部分:

1
htmlUpdate:function(){var i,j,l,h,k,g=wpLink.textarea();if(!g){return}i=wpLink.getAttrs();if(!i.href||i.href=="http://"){return}if( /^http:\/\/ihacklog\.com/.test(i.href) ){j='<a href="'+i.href+'"';}else{j = '<a href="http://ihacklog.com/l.php?url=' + encodeURIComponent( i.href ) + '"';i.target="_blank";}if(i.title){j+=' title="'+i.title+'"'}if(i.target){j+=' target="'+i.target+'"'}j+=">";

中间这一处:

if( /^http:\/\/ihacklog\.com/.test(i.href) ){j='<a href="'+i.href+'"';}else{j = '<a href="http://ihacklog.com/l.php?url=' + encodeURIComponent( i.href ) + '"';i.target="_blank";}

即是我修改的部分。

更多
5 Responses Post a comment
  1. 荒野无灯

    没有呢,我这个不是弹窗的。。。只是针对SEO和防采集的。 :!:

  2. phoetry

    这样如果浏览器屏蔽弹出窗口, 一个链接都无法直接打开了, 如ie9...
    其实现在大多浏览器都把链接打开方式的选择权交给用户了, 我觉得网站也应如此.

  3. 浩子

    我觉得还可以吧
    呵呵
    就沙发了

Leave a Reply

Note: You may use basic HTML in your comments. Your email address will not be published.

Subscribe to this comment feed via RSS