2007年03月01日

Seesaa のアクセス解析のリファラスパムを消す Bookmarklet

Seesaa のアクセス解析のリンク元を見ると全然関係ない URL がたくさん並んでる(ブログにもよるのでしょうが)。リファラスパムとか言われているらしい。
このリファラスパムが多くて普通のリンク元が埋もれてしまってあまり見ても参考にならない。

リファラスパムの特徴として URL の最後に # がついているようなので取り合えず # がついている URL を消す Bookmarklet を書いてみた。

下記をお気に入り(ブックマーク)に登録して Seesaa のアクセス解析のリンク元画面でクリックするとリファラスパムが消えると思います(ちゃんとしたリンク元も消えてしまう場合もあるかも知れませんが)。
refererCleaner
一応ソースコードも。

javascript:(function(){var links=document.links;for(var i=0;i<links.length;i++){if(links[i].href.match(/#$|%23$/g))links[i].parentNode.parentNode.style.display="none";}})();

ただし、リンク元がすべてリファラスパムだったら全部消えてしまいます(多分)。なので、ちょっと見やすくなるかも、という程度のものだと思います。



posted by knit at 19:47| Comment(0) | TrackBack(1) | JavaScript | このブログの読者になる | 更新情報をチェックする

2007年02月15日

兄(一澤帆布)が弟(一澤信三郎帆布)を商標侵害で提訴

最近あまり一澤帆布関係のニュースも聞かないな、と思っていたらこんなニュースが。

「一澤帆布工業」を経営する長男一澤信太郎さん(61)らが、新ブランドを立ち上げた三男、信三郎さん(58)ら旧経営陣に、商標権侵害による損害賠償など計約13億円の支払いを求め14日、京都地裁に提訴した。
一澤帆布、兄が弟を商標権侵害で提訴 泥沼お家騒動|Sankei WEB

お兄さんの方の一澤帆布は再開してからどうなのだろうか?弟さんの一澤信三郎帆布の方は好調なイメージはあるけど。

お互いに店は再開したのだからそれなりに共存していけばいいような気もするけど、なかなかそうはいかないようで、この先どうなるのだろう。

posted by knit at 02:17| Comment(0) | TrackBack(1) | News | このブログの読者になる | 更新情報をチェックする

2007年02月14日

テキストエリア内の選択文字列を簡単に実体参照化するブックマークレット

昨日書いた記事のブックマークレットでは Seesaa の投稿画面でしか使えなかった(IE は大丈夫だったかも)が、良く考えたらテキストエリアのあるページならどこでも使えるように書けるのではないかと思ってきたので、書き直してみた。

これならどのページでもテキストエリア内のテキストをマウスなどで選択してブックマークレットを実行すれば、'<'、'>'、'&'、'"' を '&lt;'、'&gt;'、'&amp;'、'&quot;' に変更することが出来ます(多分)。

ソースコードは下記です。コピーしてお気に入りなどに登録してご利用ください(追記:下のリンクを登録で大丈夫です)。ただし、おかしな点があるかも知れないので、自己責任でお願いします。

追記
IE の場合はテキストエリアに限らず選択範囲は置き換えられてしまいます。普通に使う分にはそれほど問題もないかとも思いますが。

更に追記
下のリンクをお気に入りに登録すれば使えるようになります。

javascript:(function(){var d=document;function r(s){return s.replace(/([<>&\"])/g,function(m0,m1){return {'<':'&lt;','>':'&gt;','\"':'&quot;','&':'&amp;'}[m1];});}if(d.selection){d.selection.createRange().text=r(d.selection.createRange().text);}else{var ta=d.getElementsByTagName('textarea');for(var i=0;i<ta.length;i++){if(ta[i].value){var s=ta[i].selectionStart;var e=ta[i].selectionEnd;var v=ta[i].value;var t=v.slice(s,e);if(t)ta[i].value=v.slice(0,s)+r(t)+v.slice(e);}}}})();

ブックマークレットは後で自分でも何をしていたかわからなくなる場合が多いので、改行、スペースなどを入れて見やすくして、コメントを入れたソースコードも貼っておこうかと思います。

続きを読む
posted by knit at 21:53| Comment(0) | TrackBack(5) | JavaScript | このブログの読者になる | 更新情報をチェックする

2007年02月13日

Seesaa で投稿する時 HTML を実体参照化するブックマークレット

JavaScript などのプログラムのコードをブログに貼り付ける際につい忘れたり、面倒なのが、'<'、'>'、'&'、'"' などを実体参照化すること。

今まではこちらの Text -> HTML Entities Encoder などを使って変換してから Seesaa の投稿画面に貼り付けていました。便利に使わせていただいていたのですが、ブラウザ一つで出来るとはいえ、タブを切り替えたりして、投稿画面から離れるのも面倒になってきたので、その場(Seesaa の投稿画面)で変換出来るようにしてみました。

方法としてはブックマークレットを利用します。本文の入力画面内の変換したい文字を選択して登録しておいたブックマークレットを実行すると変換されるという感じです。

ソースはこんな感じです。

javascript:(function(){var d=document;function enc(id){var ta=d.getElementById(id);if(ta){v=ta.value;var t;if (d.selection){t=d.selection.createRange().text;if(t)d.selection.createRange().text=r(t);}else{var S=ta.selectionStart;var E=ta.selectionEnd;t=v.slice(S,E);if(t)ta.value=v.slice(0,S)+r(t)+v.slice(E);}}function r(s){return s.replace(/([<>&\"])/g, function(m0,m1){return {'<':'&lt;','>':'&gt;','\"':'&quot;','&':'&amp;'}[m1];});}}enc('article__body');enc('article__body_more')})();

まだおかしくなったりもあるかも知れないので、もし利用される方がいたら(これだけの説明だとよくわからないかと思いますが)お気をつけ下さい。自己責任でお願いします。

追記
Seesaa に限らず使えるようにしたブックマークレットを書いてみました。
テキストエリア内の選択部分を簡単に実体参照化するブックマークレット

posted by knit at 14:34| Comment(0) | TrackBack(0) | JavaScript | このブログの読者になる | 更新情報をチェックする

2007年02月08日

英文を文ごとに分ける JavaScript

複数の文からなっている英文を一文ごとに分けて、配列にする JavaScript を書いてみた。すでに、ありそうだけど取り合えず。

文末を判定する正規表現はGNU Emacs Lispリファレンスマニュアル: 探索と一致を参考にさせてもらいました。参考というかそのままな感じですが

function sentenceSeparate(str) {
  var result = [];
  // "||"をエスケープ
  str = str.replace(/\|\|/g, "\\\|\\\|");
  str = str.replace(/([\.\?!][\]\"\'\)\}]*)($| $|\s|\s\s*)/g, "$1$2\|\|");
  var lines = str.split(/\|\|/);
  // エスケープしたのを戻す
  for (var i = 0; i < lines.length; i++) {
    if (lines[i]) result.push(lines[i].replace(/\\\|\\\|/g, "\|\|"));
  }
  return result;
}

まだあまり試していないのでおかしい場合もあるかも知れないです。

追記(2006-03-01)

良く考えたらエスケープとか必要なく、単純に英語で使用されない文字で区切るようにすればいいのではないかと思ったので書き直してみました。

function sentenceSeparate(str) {
  var result = [];
  str = str.replace(/([\.\?!][\]\"\'\)\}]*)($| $|\s|\s\s*)/g, "$1$2|");
  str = str.replace(/^|||$/g, "");
  result = str.split(/|/);
  return result;
}
posted by knit at 13:11| Comment(2) | TrackBack(0) | JavaScript | このブログの読者になる | 更新情報をチェックする