• R/O
  • HTTP
  • SSH
  • HTTPS

feedblog_ext: Commit

JavaScriptのみで記述されたブログツール・ソフトウェアです。表示にExt JSを使用します


Commit MetaInfo

Revision2088df019c1c2a699fc64d68ecc9eca955fc2532 (tree)
Time2009-06-04 00:25:49
AuthorNARUSE, Yui <naruse@user...>
CommiterNARUSE, Yui

Log Message

Optimize replacing anchors.

Change Summary

Incremental Difference

--- a/js/lunardial/feedblog_mixi.js
+++ b/js/lunardial/feedblog_mixi.js
@@ -157,15 +157,12 @@ function validateText(contents){
157157 }
158158
159159 // Aタグを変換する
160- while (target_tag = contents.match(/<a[^>]*>/)) {
161- // href="..."の部分のみを抜き出す
162- target_element = target_tag[0].match(/href=["'][^"']*["']/i);
160+ var base_uri = document.location.href.replace(/[^\/]+$/, '');
161+ var func = function(target, quote, url) {
163162 // 相対URIが検出された場合、フルに置換する
164- target_element = target_element[0].replace(/\.\//, "http://lunardial.sakura.ne.jp/");
165- // Aタグ全体を消去し、再度Aクローズタグの置換を行う
166- contents = contents.replace(target_tag, "");
167- contents = contents.replace(/<\/a>/i, " ( " + target_element.replace(/href=|["']/g, "") + " ) ");
168- }
163+ return '( ' + url.replace(/^(?!http)(?:\.\/)?/, base_uri) + ' )';
164+ };
165+ contents = contents.replace(/<a[^>]*href=(["'])(.*?)\1[^>]*>.*?<\/a>/i, func);
169166
170167 // 通常のタグすべてを削除する
171168 contents = contents.replace(/<[^>]*>|<\/[^>]*>/ig, "");
Show on old repository browser