[opera][javascript] Operaで新はてなブックマーク(β)のブックマークレットが動かない件とその対策
遅ればせながら追記 @ 2008-11-21 15:30
この問題は既に解決されています.
ということで,下記にあるブックマークレットを無効にしました.
はじめに
マイブックマークの検索インタフェイスが心地よい 新はてなブックマーク(β).ブックマークするためのブックマークレットも使い勝手が向上してかなりいい感じなのですが...
現在のブックマークレットと違い、ベータ版の新しいブックマークレットはOperaの場合、うまく動かない。
ブックマークレットはブックマークする以外は使わないので、私はURLをクリックした際にしか現れないスタートバーに入れているのですが、新しいブックマークレットはスタートバーに登録した場合、クリックしても反応しない。
パーソナルバーやブックマークバーにセットした場合は、動くけども・・・。
私の場合,アドレスバー(の右側)に置いているのですが,同様な感じで動作しませんでした.
しかしながら,ブックマークレットのソースコードにちょっと手を加えるだけで動作することがわかったので,その辺について以下.
ソースコードに手を加えてみる
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の実装上の問題なんですかね.
おまけ
旧はてなブックマークのブックマークレットでは,最初からシングルクオートが使われていたため,特に気にすることもなく動いていたんですね.

![ネトラン 2008年 12月号 (小冊子付) [雑誌]](http://ecx.images-amazon.com/images/I/61s6FKLGoZL._SL160_.jpg)

![ネトラン 2008年 11月号 [雑誌]](http://ecx.images-amazon.com/images/I/61J5UuKkILL._SL160_.jpg)




![twitomonitor [ついともにた] twitomonitor [ついともにた]](http://www.iwa-ya.net/img/banner/twitomonitor.png)


