多少はウィンドウサイズの変動に耐えられるように変更した。
表示位置とか表示領域の大きさに関しては試行錯誤の結果の決め打ちなので、他の環境でどうかについては考慮していない。気に入らなければ勝手に調整したらいい。
ちなみにこのスクリプトは検索結果に表示される広告の部分を覆い隠してしまいますので、広告も見るんだ俺は、って方は使わないように。
ついでにYahoopediaってのも実は作ったけどGooglepedia.jsをちょっといじれば済む話なのでYahooがお好みであればそのようにしてください。
多少はウィンドウサイズの変動に耐えられるように変更した。
表示位置とか表示領域の大きさに関しては試行錯誤の結果の決め打ちなので、他の環境でどうかについては考慮していない。気に入らなければ勝手に調整したらいい。
ちなみにこのスクリプトは検索結果に表示される広告の部分を覆い隠してしまいますので、広告も見るんだ俺は、って方は使わないように。
ついでにYahoopediaってのも実は作ったけどGooglepedia.jsをちょっといじれば済む話なのでYahooがお好みであればそのようにしてください。
Googlepedaの記事を読んで、似たようなもんがあるだろうと探しに行ったけど動きやしないので、それっぽいものを作った。
色々詰めが甘い(Windowサイズの変更とかまったく考慮してないし)けど、基本自分用なのでよし。
Wikipediaの表示内容については http://wikipedia.simpleapi.net/ を利用している。本家がいい人は、
url[j] = "http://wikipedia.simpleapi.net/api?output=html&keyword=" + kw[j];
を
url[j] = "http://ja.wikipedia.org/wiki/" + kw[j];
とかに変えればよろしい。
opera:config#UserPrefs|UserJavaScriptがONになっていればopera:config#UserPrefs|UserJavaScriptFile で指定されているフォルダに保存するか、サイ ト別の設定で指定したUser.js用のフォルダに保存することでとりあえず動く。はず。あとインラインフレームは有効で。添削歓迎。
ちなみに複数のキーワードで検索したときは最初の単語しか拾わない。複数単語のそれぞれについて色々やろうとした名残はソースに残っていますが、途中でめんどくさくなって投げました。はい。
表示の仕方とかは自身のディスプレイ環境に合わせて適当に調整してください。
ソースの
f.style.cssText = "position:absolute;left:700px;height:845px;top:180px;width:auto;background-color:white;z-index:"+(100-j);
この辺で調整できます。
多少スクリプトに修正を入れたので調整の方法とかは変わってしまいましたが、ソース読めば分かると思うのでこのエントリはこのままで。
キライなんです。醜いから。なので、極力目に入らないよう次のようなスクリプトを書いた。
// ==UserScript==
// @exclude http://mattz.xii.jp/*
// ==/UserScript==
(
function(){
  document.addEventListener(
    'DOMContentLoaded',
    function(){
      document.body.innerHTML = document.body.innerHTML.replace(/([0-9A-Za-z ])/g,function(str,p1){
        return {'0':'0','1':'1','2':'2','3':'3','4':'4','5':'5','6':'6','7':'7','8':'8','9':'9',
          'A':'A','B':'B','C':'C','D':'D','E':'E','F':'F','G':'G','H':'H','I':'I','J':'J','K':'K',
          'L':'L','M':'M','N':'N','O':'O','P':'P','Q':'Q','R':'R','S':'S','T':'T','U':'U','V':'V',
          'W':'W','X':'X','Y':'Y','Z':'Z','a':'a','b':'b','c':'c','d':'d','e':'e','f':'f','g':'g',
          'h':'h','i':'i','j':'j','k':'k','l':'l','m':'m','n':'n','o':'o','p':'p','q':'q','r':'r',
          's':'s','t':'t','u':'u','v':'v','w':'w','x':'x','y':'y','z':'z','(':'(',')':')',' ':' '}[p1];
      });
    },false
  );
})();
書いたけど、一部のスクリプトを殺してしまうようなので、ご利用は計画的に。
例えば、このDrupalの新規エントリ作成画面のスクリプトが動きません。おかしいなと思ったら、@excludeに追加していただくとか、根本的な問題を修正していた だくとか、そもそも使うのをやめるとかしてください。
別のスクリプトを作っている過程で、このスクリプトの問題点が分かったので対処。
ついでに、regexp - 全角英数字を半角にの全半変換関数をまんまコピーして作り直した。
Bookmarklet - link them all!でいいじゃねーかって?おっしゃる通り。
// ==UserScript==
// ==/UserScript==
(
function(){
  var fascii2ascii = (function(){
    var cclass
     = '['+String.fromCharCode(0xff01)+'-'+String.fromCharCode(0xff5e)+']';
    var re_fullwidth = new RegExp(cclass, 'g');
    var substitution = function(m){
      return String.fromCharCode(m.charCodeAt(0) - 0xfee0);
    };
    return function(s){ return s.replace(re_fullwidth, substitution) };
  })();
  window.addEventListener(
    'DOMContentLoaded',
    function(){
      var x = document.evaluate('//', document, null, 7, null);
      var l = x.snapshotLength;
      var val;
      for(i = 0;i < l;i++){
        if('#text' == x.snapshotItem(i).nodeName){
          val = x.snapshotItem(i).nodeValue;
          x.snapshotItem(i).nodeValue = fascii2ascii(val);
        }
      }
    },false
  );
})();もう誰かやってる気がするけど。IE6環境がないので、このJSを読み込んだページをIE6で開いてちゃんと表示されるかどうか分かりませんけど。
if (typeof document.body.style.maxHeight == "undefined") {
  var div = document.createElement( 'div' );
  document.body.appendChild( div );
  div.setAttribute( 'id', 'analog' );
  var box = document.getElementById( 'analog' );
  box.style.cssText = 'position:absolute;top:0;right:0;width:auto;background-color:transparent;color:white;font-size:200%;font-weight:bold';
  box.innerText = 'アナログ';
}
こうですか?わかりません><
ホントはページの右上辺りの背景色を取得して、白っぽかったら灰色とかにするような処理を入れたい。
書くの忘れてた。IE6かどうかの判定についてはphpspot開発日誌のIE6とIE7を判別するJavascriptコードを参考にした。
手順その1
はてなブックマーク > セットアップの下の方にある旧バージョンのようなブックマークレットを使いたい 場合
のところにある「ブックマークする」をブックマークレットとして使えるようにします。リンクを右クリックして、ブックマークに追加→[詳細>>]ボタ ンを押す→パーソナルバーに表示みたいにするのが一番楽かと思います。分かる人は自分なりに適当にやってください。
手順その2
次のようなuser.jsを用意します。
// ==UserScript==
// @include       http://b.hatena.ne.jp/add?*
// ==/UserScript==
(
  function(){
    window.addEventListener(
      'DOMContentLoaded',
      function(){
        document.getElementById('bookmarklet-form').submit();
      },false
    );
  }
)();
ログインしてるかどうかの判定ははてなさんがやってくれるのでしていません。サブアカとか使い分けてる人はそれなりに判定入れるようにしてください。
user.jsがやってることは、[追加する]ボタンを勝手に押す(submitする)っていうだけです。
ページを表示中にパーソナルバーの[ブックマークする]ボタンを押すと、コメント/タグなしではてなブックマークに追加して、元のページに戻ってきます。
僕基本はてなブックマークは使ってないので自分で使う気はないんですけど。
未だにここにアクセスがあるので一応追記。現行のtwicliはNGワード機能は装備されているので、こんなものを使う必要はありません。
現行のtwicliでNGワード的なことをやるには、Pickup Patternのところに
NG::NG|ワード:1
などと書きます。これだけだと別タブに表示されてしまうだけなので、user stylesheetのところに
#pickup-NG{display:none;}これでNGワード発言は目に入らなくなります。
twicliを使わなくなってしまったので、最新バージョンでの動作確認などはしていません。もし動かなかったら、ローカルにでも保存してもらって適当 に編集したりしてみてください。やってることは至極単純ですので何とかなると思います。保証もしませんけど。
twicliってのはhttp://www.geocities.jp/twicli/を見れば分かるけど、Webブラウザーベースのtwitterクライアント。軽くて、Operaのパネルで動いてくれるので、愛用している。
プラグインとしてscriptを作るとかすると、機能を追加したりできるのだけど、まぁよく分からんので、ふーんそうなんだぁ、って感じでいた。
なんでまた、NGワードプラグインなんぞを作ろうと思い至ったかというと、あまりにもネガティブな発言しかしないヤツがいました。@ogochanが最近書いたことだったりもするんだけど、あ まりにも繰り返されるとこっちが滅入ってくるんですよね。まぁさっさとremove、というかblockしてしまったんでこれでOK、とか思ったら、そいつと俺と の共通のfollowerによるそいつを励ますようなreplyは目に入ってきちゃうんですよね。もうそれだけで「またネガティブ発言か」とか思って不愉快になる 。なので、そいつのID自体目に入らないようにしたいとか思った訳です。
2ちゃんねるの専用ブラウザなんかではNGワード機能なんてのがあります。twicliにはプラグインがあり、NGワードプラグインなんてのもうあるんじゃ ね?とか思ったけど見つからなかったので結局自分で作った、と。
「http://w-mattz.xii.jp/ngw/NGワード」の「NGワード」の部分を好きな単語(とかID)に変えて、twicliの「+」タブのPlugins:欄に追記して、Saveして、読み込みしなおせば適用されます。されなかったらごめんなさいですけど。
※Tweenの振り分け機能とやらでNGワード的なことは実現できるというのは調べてて分かったけど、クライアントを変える気はなかった。
ちょっと追記
「http://w-mattz.xii.jp/ngw/(NG|ワード)」等とやれば「NG」または「ワード」がNGワードになります。
2008/12/01追記
動かない。というか読み込まれない。困ったね。
2008/12/12追記
momizineバージョンのかつ旧版を利用することで復活させられた。マジでいめったーうざい。
一時期初心者向けの言語はなんだってのが盛り上がってた時期がありました。僕も半分冗談、半分本気でカルネージハートだろ、とか書きましたけど、もうちょっとまじめに言うならJavaScript(+html)をお勧めしておく。以下理由。
そういう訳で、プログラミングって面白そう、程度の人がやってみる言語としてはいいんじゃないかなと、思います。
仕事にするつもりならなんの言語でもいいよ。そのかわり最初の一個は徹底的にやれ。後が楽になる。
ちなみにOperaのバージョンはBuild 10034でしか動作確認していません。9.2系にはgetElementsByClassNameがない、とかどっかで見た気がするので、多分動き ませんが、検証するつもりはゼロです。
どこからか要望でも来ない限り、多分もう大幅なバージョンアップはないと思います。バグ見つけたら教えてくれると嬉しいです。
変更点
いずれもお使いの方が直接スクリプトを編集する必要があります。
コード的にまだまだスマートでない部分がたくさんあるので、そう言うのも含めてもうちょっとバージョンアップすると思います。