おでこは JavaScript が書けない


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

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

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

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

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

普段なら

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

ブックマークレット選択

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

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

[js]javascript:window.location=%27echofon:///message?%27+”%20″+document.title+”%20″+encodeURI(window.location)[/js]

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

ちゃんとパースされる

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

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

ところがこの記事

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

パースされない(´・ω・`)

どうも URL がなかったらしい…。そうとは気づかずそのままつぶやいてしまったようで…

とか

とか

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

Escape to the sky

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

パースされない(´・ω・`)

あれ、これもしかして…ページタイトル全部取得できていない…?

ちゃんとパースされる

 

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

ピコン! ©ひろましゃ

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

[js]javascript:window.location=%27echofon:///message?%27+”%20″+encodeURIComponent(document.title)+”%20″+encodeURI(window.location)[/js]

これでどないじゃ〜!

JavaScript 修正したらうまくいった!( ・`ω・´)

決まった!(ドヤッ

Android くんがしっかりしてきたので出番がちょっと減ってきた iPhone ですが、もう少しこのブックマークレットで戦ってみようと思いますー(`・ω・´)


“おでこは JavaScript が書けない” への3件のフィードバック

フォームは コメントしてほしそうに こちらを見ている……!

このサイトはスパムを低減するために Akismet を使っています。コメントデータの処理方法の詳細はこちらをご覧ください