[メモ] Javascriptのclickが呼び出せない時の対処法

Androidアプリをつくっていて、WebView内のWEBページに対してJavascriptのclickを呼び出す処理を実装。
参考: http://web-terminal.blogspot.jp/2013/05/androidwebviewjavascripthtml.html
     http://dayafterneet.blogspot.jp/2011/08/androidwebviewjavascript.html
    このへん

で、全く同じアプリであるにもかかわらず、なぜか手持ちのNexus7(初代)では意図した動き(ページ内の特定のポイントをクリックした時の動作を呼び出したい)が動くにもかかわらず、開発ボードの ODROID-X2 で動かそうとしたらうまく動いてくれない。
今回作っているアプリはこのODROID-X2を実機として動かす予定の物のため、これではまずい!
ということで色々と調べて見ると、elementは取れているにもかかわらず、 onclick が実行されていない!
さらに良く調べると、Javascriptを使うとき、firefoxでは普通にclickを呼び出しても動かないと言う情報を発見。
参考: http://d.hatena.ne.jp/language_and_engineering/20090907/p1

ということで、上のページを参考に、もともとはシンプルに

wv_bottom.loadUrl("javascript: parent.frames[0].document.getElementById('label1').click(); ");

(中身が決してシンプルではない、というツッコミはご勘弁を。動かしたい対象のWEBページが自作ではなく、ある公共機関のWEBページ上のコンテンツなんですが、そこがフレーム使いまくったへんな構造のWEBサイトになっていて、こういう形で記述しないとエレメントが取れなかったのです…)
していたソースを

wv_bottom.loadUrl(
"javascript:" +
"var evt = parent.frames[0].document.createEvent('MouseEvents');" +
"evt.initEvent( 'click', false, true );" +
" parent.frames[0].document.getElementById('label1').dispatchEvent(evt); "
);

こんな風に変えたら、無事動いてくれました。

まぁ、結局のところブラウザによって対応している呼び出し方があると言うところなんでしょうけど、端末によってこういう違いがある可能性にぱっと気づけないあたり、まだまだ勉強が足りませんな。

Javascriptももう少しちゃんと勉強しなきゃなぁ~。
勉強しなきゃいけないことが多すぎる…

=====================================気になる情報
エプソン、320インチ相当の画面表示可能なメガネ型 Android 端末「MOVERIO BT-200」発表、価格7万円前後で4月24日発売

約5000円と激安の超小型PC「CuBox-i1」でAndroidとLinuxを動かしてみた

日本独立作家同盟、「月刊群雛 (GunSu) ~インディーズ作家を応援するマガジン」をEPUB/BCCKS形式で本日創刊

Curlコマンドをわかりやすく貼り付けるための『embed curl』

UXデザインをアプリ制作のワイヤーフレームとプロトタイプに取り入れるケーススタディ

Androidアプリの署名<KeyStore Keytool AndroidDebugKey>

朝日・木村社長「朝夕刊セット主義からの脱却を」「取材部門で別会社設立へ」

PHPを使ってAjax通信のクロスドメインに対応する方法



Cybercrime and Espionage: An Analysis of Subversive Multi-Vector Threats
Syngress
Will Gragido

ユーザレビュー:

amazon.co.jpで買う
Amazonアソシエイト by Cybercrime and Espionage: An Analysis of Subversive Multi-Vector Threats の詳しい情報を見る / ウェブリブログ商品ポータル

HTML5 Pratico. Per Web App. Guida completa di HTML5 per le web app (Esperto in un click)
Area51 Publishing
Alberto Misuraca

ユーザレビュー:

amazon.co.jpで買う
Amazonアソシエイト by HTML5 Pratico. Per Web App. Guida completa di HTML5 per le web app (Esperto in un click) の詳しい情報を見る / ウェブリブログ商品ポータル

"[メモ] Javascriptのclickが呼び出せない時の対処法" へのコメントを書く

お名前
メールアドレス
ホームページアドレス
コメント

テーマ別記事