2011年3月10日木曜日

はてなブックマークが ajax に変更されている

Firefox で RequestPolicy を導入しているので、他のドメイン(st-hatena.com)にある JavaScript のコードから ajax でブックマークのエントリーを取得されても何も表示されなくてこまる。

Firebug の [接続タブ] で確認すると、どうやら次のような URL でブックマークのエントリーを取得しているらしい。

http://b.hatena.ne.jp/(Hatena ID)/fragment?tag=(Tag name)

直接アクセスしてみたら問題なく表示されたので、元のページからエントリーデータのページへ移動するブックマークレットを作ってひとまず回避。

bookmarklet
javascript:var a=/^(http:\/\/b\.hatena\.ne\.jp\/[^/]+\/)(.*)$/.exec(location.href);location.href=a[1]+'fragment'+((a[2]&&a[2]!='')?'?tag='+a[2].replace(/\/$/,'').split('/').join('&tag='):'');

2011.03.11 追記

ブックマークレットで移動した先のページを開いているときに st-hatena.ne.jp を RequestPolicy で許可したら Favicon がリピートして気持ち悪いことに。。。

Stylish で次の css を導入して解決。

Stylish
@namespace url(http://www.w3.org/1999/xhtml);

@-moz-document domain("b.hatena.ne.jp") {
  h3.entry { background:no-repeat; padding-left: 20px; }
}

2011.04.11 追記

cookie を削除したら ajax を使わない元のはてなブックマークに復帰。
何かの弾み(何かクリック?)で ajax 機能のスイッチが入ってしまっていたみたい。

タグ一覧の右上にある [クラウド(or リスト)表示に切り替え] ボタンをクリックしていたら、 また ajax に。。。

b.hatena.ne.jp の Cookie を覗いてみると "fast" 項目が、値 "1" で追加されている。
どうやらこれが ajax 機能のスイッチみたい。

2011年3月4日金曜日

window.open() していたブックマークレットが新しいウィンドウで開かなくなった

いつもは新しいタブで開いて、ここぞという状況では新しいウィンドウで開いてくれていたのに、何かのきっかけで、すべて新しいタブで開くようになってしまった。 ※ 環境:Firefox 3.6.14/Windows XP

bookmarklet
javascript:void window.open(
 "about:blank"
, "_blank"
, "width=300,height=400,scrollbars=yes");

次のページの

「新しいウインドウではなく新しいタブで開く」の「注意」には、次のように書かれている。

注意: 一部の指定されたサイズでのみ正しく表示されるページのために、このオプション設定 が無視されることがあります。リンクを新しいタブに開くようにしていても、新しいウインドウのサイズがページ作者によって指定されていると、リンクが新しいウインドウで開かれます。

やっぱり、新しいウィンドウで開いてくれてもよさそうな感じの説明。

あれこれ検索していたら、次の記述を発見。

リンクが window.open の時、サイズ指定がある時はウインドウで開く 「browser.link.open_newwindow.restriction」を「2」にする。
  • (bowz.info) [ Firefox ] target="_blank" のリンクを現在のタブで開く方法 | Bowz::Notebook
    → http://bowz.info/817#extended

日本語で検索できるページを作ってくれている事に感謝しつつ browser.link.open_newwindow.restriction を検索

"about:config" で "browser.link.open_newwindow.restriction" を "2" へ設定して回復。