今天,博客折腾的地方也比较多了,先是弄上ajax评论,然后有弄上回应邮件提醒,接着细节上的css也调整下,为了配合关于页面中的小图标,也把原来那些图片的边框css给注释掉了<在头部标签中,内嵌样式>。 接着闲着无事,为了让访客多些几率停留在自己的博客上,又弄上了这个在新窗口中打开wordpress评论者链接,本来以为只是target="_blank" 或 rel="external" 的任务……谁知道远远没这么简单。这次采用的是万戈的方法,以下引用全文: WordPress 程序源码写的很规范,符合 W3C 的 xhtml1-strict.dtd 标准。比说,让评论者链接在新窗口中打开,Wordpress 用的是 rel="external",而不是 target="_blank"。符合规范,这当然是好事啦,但是我们知道仅凭 rel="external" 是不能独自完成在新窗口打开的任务的,还需要一个 external.js 配合才行,而 WordPress 源程序中并没有包含 external.js 这个文件,也很少有主题将这个脚本纳入其中。 这里提供两种方案使 WordPress 评论者的链接在新窗口打开。 方法一:用 rel="external" 实现。 1、将以下代码另存为 external.js 文件。 function externallinks() { if (!document.getElementsByTagName) return; var anchors = document.getElementsByTagName("a"); for (var i=0; i<anchors.length; i++) { var anchor = anchors[i]; if (anchor.getAttribute("href") && anchor.getAttribute("rel") == "external nofollow") anchor.target = "_blank"; } } window.onload = externallinks; 2、然后将 external.js 文件上传到主题根目录下,并用以下方式调用。{在我这里是template_url} 方法二:用 target="_blank" 实现。 (转自 荒野无灯,原址请见http://www.hacklog.cn/php/wordpress-comment-author-link-open-in-new-window.html) 1、打开/wp-includes/comment-template.php,查找“function get_comment_author_link”。 2、在第148行(Wordpress 2.8.4,其他版本可参照)处添加 target='_blank',如下: $return = "$author"; 表示第二种方法在我这尝试无效,可能是我方法的问题,忘知情者也给予指点哇~ 补充,无意中看到的: 方法三:JQuery(好的东西总是在后面)--via林木木 将以下代码放进js文件中 jQuery(document).ready(function($){ $(‘.fn a’).attr({ target: “_blank”}); }); 或者在header.php添加下面代码 我{此我非我}现在使用的就是第三种方法,觉得如果是使用Callback这种方法定义的评论样式,也应该可以在相应的地方修改,我也看了下但是不会修改,这个就留着以后再补充吧。 2010年9月7号更新:根据1pondo所述,用下面这段jQuery代码劫持所有超链接的click事件,判断是内部链接或外部链接来决定是否在新窗口中打开。 jQuery(document).delegate(‘a’, ‘click’, function() { var root = location.href.replace(location.pathname + location.search + location.hash, ”); if ( !this.href ) return; if ( this.href.indexOf(root) != 0 ) { window.open(this.href); return false; } }); Loading... 今天,博客折腾的地方也比较多了,先是弄上ajax评论,然后有弄上回应邮件提醒,接着细节上的css也调整下,为了配合关于页面中的小图标,也把原来那些图片的边框css给注释掉了<在头部标签中,内嵌样式>。 接着闲着无事,为了让访客多些几率停留在自己的博客上,又弄上了这个在新窗口中打开wordpress评论者链接,本来以为只是target="_blank" 或 rel="external" 的任务……谁知道远远没这么简单。这次采用的是<a href="http://wange.im/wordpress-comment-author-link-open-in-new-window.html" target="_blank">万戈</a>的方法,以下引用全文: <!--more--> WordPress 程序源码写的很规范,符合 W3C 的 xhtml1-strict.dtd 标准。比说,让评论者链接在新窗口中打开,Wordpress 用的是 rel="external",而不是 target="_blank"。符合规范,这当然是好事啦,但是我们知道仅凭 rel="external" 是不能独自完成在新窗口打开的任务的,还需要一个 external.js 配合才行,而 WordPress 源程序中并没有包含 external.js 这个文件,也很少有主题将这个脚本纳入其中。 这里提供两种方案使 WordPress 评论者的链接在新窗口打开。 <strong>方法一:用 rel="external" 实现。</strong> 1、将以下代码另存为 external.js 文件。 <pre lang="java">function externallinks() { if (!document.getElementsByTagName) return; var anchors = document.getElementsByTagName("a"); for (var i=0; i<anchors.length; i++) { var anchor = anchors[i]; if (anchor.getAttribute("href") && anchor.getAttribute("rel") == "external nofollow") anchor.target = "_blank"; } } window.onload = externallinks; </pre> 2、然后将 external.js 文件上传到主题根目录下,并用以下方式调用。{在我这里是template_url} <pre lang="php"><script src="<?php bloginfo('template_directory'); ?>/external.js" type="text/javascript"></script></pre> <strong>方法二:用 target="_blank" 实现。</strong> (转自 荒野无灯,原址请见http://www.hacklog.cn/php/wordpress-comment-author-link-open-in-new-window.html) 1、打开/wp-includes/comment-template.php,查找“function get_comment_author_link”。 2、在第148行(Wordpress 2.8.4,其他版本可参照)处添加 target='_blank',如下: <pre lang="php">$return = "<a class="url" href="$url" target="_blank" rel="external nofollow">$author</a>"; </pre> 表示第二种方法在我这尝试无效,可能是我方法的问题,忘知情者也给予指点哇~ 补充,无意中看到的: <strong>方法三:JQuery</strong>(好的东西总是在后面)--<a href="http://immmmm.com/jquery-notes-open-comment-link-new-window.html" target="_blank">via林木木</a> 将以下代码放进js文件中 <pre lang="java">jQuery(document).ready(function($){ $(‘.fn a’).attr({ target: “_blank”}); }); </pre> 或者在header.php添加下面代码 <pre lang="php"><script src="”http://ajax.googleapis.com/ajax/libs/jquery/1.2.3/jquery.min.js”" type="”text/javascript”"></script><script type="”text/javascript”">// <![CDATA[ $(‘.fn a’).attr({ target: “_blank”}); // ]]></script></pre> 我{此我非我}现在使用的就是第三种方法,觉得如果是使用<a href="http://www.bokeam.com/wordpress%e8%af%84%e8%ae%ba%e6%a0%b7%e5%bc%8f%e4%b9%8bcallback/" target="_blank">Callback</a>这种方法定义的评论样式,也应该可以在相应的地方修改,我也看了下但是不会修改,这个就留着以后再补充吧。 2010年9月7号更新:根据1pondo所述,用下面这段jQuery代码劫持所有超链接的click事件,判断是内部链接或外部链接来决定是否在新窗口中打开。 <pre lang="java">jQuery(document).delegate(‘a’, ‘click’, function() { var root = location.href.replace(location.pathname + location.search + location.hash, ”); if ( !this.href ) return; if ( this.href.indexOf(root) != 0 ) { window.open(this.href); return false; } }); </pre> © 允许规范转载 赞 如果觉得我的文章对你有用,请随意赞赏