おでこは JavaScript が書けない

ブックマークレットが動かない?

アプリケーション間の連携が可能な Android と違って、iPhone ではアプリ間で自由にデータをやり取りすることができません。ブラウザーで見ているサイトを Twitter でつぶやくことはもちろんできるのですが、連携される情報は決まっており、取捨選択したり自分好みのフォーマットにすることはできません。

そこで、Chrome for iOS にブックマークレットを書いて、見ているウェブサイトのタイトルと URL を取得し、echofon アプリの新規つぶやきに入力されるようにしていたのですが、なんだかうまく動かなくなってしまいました。

さて、どうしたものか。JavaScript が書けないおでこのショート奮闘記。

これまでのコードと想定した動作

普段なら

上記は、WordPress のユーザー名 admin を変更してみるの記事を表示したところ。ここで、ブラウザのロケーションバーに「あああ」と入力することで…

ブックマークレット選択

「あああ」というタイトルにしたブックマークレットを呼び出せるようにしていました。

ブックマークレットのコードは以下の通り。

まぁまぁ笑うなかれ。JavaScript の魔術師とか、闇プログラマーとか、カリメロプログラマーとかな方にはちゃんちゃらおかしいコードかもしれませんけど、これでもがんばって書いたんですって。

ちゃんとパースされる

ともかく上記のように書いたブックマークレットを選択すると、echofon が起動し、新規つぶやき入力に Chrome で表示していたサイトのタイトルと URL を入力した状態にできていたんです。

あれ、URL が取得できていない…?

ところがこの記事

ところが先日このWordPress 10周年記念イベント(WordBench 東京5月)で発表してきました #wp10をしたためて、iPhone からつぶやこうと思ったところ…

とか

とか

とかまで言われちゃうわけですよ。決して、決してぼくが忘れたわけではない! ブックマークレットが忘れたのだ!

Escape to the sky

さて原因はなんだろ、と何度もブックマークレットを動かしながらにらめっこ。

ちゃんとパースされる

 

そうなのです。URL が取れてないだけでなく”| 8bitOdyssey.com” がない!つまりこれは途中で切れているのです。切れた後にあるのは #wp10

ピコン! ©ひろましゃ

# をうまく処理できなくてここで落ちてるのかな。エスケープしてあげないといけないみたいですね。

これでどないじゃ〜!