• このエントリーをはてなブックマークに追加
Operaのアドレスバーに置いた「新はてなブックマーク(β)」のブックマークレットが動かない.

遅ればせながら追記 @ 2008-11-21 15:30
この問題は既に解決されています.
ということで,下記にあるブックマークレットを無効にしました.

はじめに

マイブックマークの検索インタフェイスが心地よい 新はてなブックマーク(β).ブックマークするためのブックマークレットも使い勝手が向上してかなりいい感じなのですが...

現在のブックマークレットと違い、ベータ版の新しいブックマークレットはOperaの場合、うまく動かない。

ブックマークレットはブックマークする以外は使わないので、私はURLをクリックした際にしか現れないスタートバーに入れているのですが、新しいブックマークレットはスタートバーに登録した場合、クリックしても反応しない。

パーソナルバーやブックマークバーにセットした場合は、動くけども・・・。

はてなブックマーク新バージョン ベータ版のブックマークレットがOperaだとうまく動かない – ピポケカblog

私の場合,アドレスバー(の右側)に置いているのですが,同様な感じで動作しませんでした.

しかしながら,ブックマークレットのソースコードにちょっと手を加えるだけで動作することがわかったので,その辺について以下.

ソースコードに手を加えてみる

JavaScriptが動作しない場合はまず「エラーコンソール」.

JavaScript - http://bbeta.hatena.ne.jp/register
Javascript URL thread: "javascript:(function(){var%20s=document.createElement("
Syntax error while loading: line 1 of unknown script :
Expected statement
(function(){var s=document.createElement(

なんか出てますね.ソースコードに問題ないはずなのに何ででしょう...考えてもわかりません.

さて,私は JavaScript を書くとき,文字列にはシングルクオート(「’」ね)を好んで使っています.根拠は特にありません.

ということで,上記エラーの後に続いている "script"'script' と置き換えて,再度実行してみました.

JavaScript - http://bbeta.hatena.ne.jp/register
Javascript URL thread: "javascript:(function(){var%20s=document.createElement('script');s.charset="
Syntax error while loading: line 1 of unknown script :
Expected statement
var s=document.createElement('script');s.charset=

あれ,ちょっと進んでますね.

その次の "UTF-8"'UTF-8' と置き換えてみます.

JavaScript - http://bbeta.hatena.ne.jp/register
Javascript URL thread: "javascript:(function(){var%20s=document.createElement('script');s.charset='UTF-8';s.src="
Syntax error while loading: line 1 of unknown script :
Expected statement
.createElement('script');s.charset='UTF-8';s.src=

またちょっと進んでますね.

どうやらダブルクオートが使われているのが問題のようです.

新はてなブックマーク(β)のブックマークレットが動作した.

そんなわけで,ソースコード中のダブルクオートをすべてシングルクオートに置き換えてみたところ,うまく動作しました.

まとめ

新はてなブックマーク(β)のブックマークレットのソースコード.replace( /ダブルクオート/g, シングルクオート ) しましょう.

それがメンドイ方は,以下にブックマークレットのリンクを置いておきますので,これをドラッグするなりURLをコピーするなりしてください.

ブックマークする

おわりに

Operaのアドレスバー等で使うことも考えると,ブックマークレットで文字列を扱う場合には,シングルクオートを使うのが無難っぽいです.

過去に,自作ブックマークレットがOperaで動かないことがあったんですが,同じことが原因かも.

まぁ結局,根本的な原因はわかっていませんが,Operaの実装上の問題なんですかね.

おまけ

旧はてなブックマークのブックマークレットでは,最初からシングルクオートが使われていたため,特に気にすることもなく動いていたんですね.