Archive for the ‘Firefox’ Category

9月
07

flashcast:フリーで働くITエンジニア集団のブログ: Strayed ChildをFirefox 3.5対応の続きです。

もともとStrayed Childは、

  • 拡大/縮小はiPhone、Androidの操作に任せていた。
  • 表示は極力、地図だけにしたい。

ということで、ZoomIn、ZoomOutのボタンはつけていませんでした。

ただ、PCのブラウザで見ると、拡大はダブルクリックでできるのですが、縮小ができません。これは不便。。。なので、最小限の拡大/縮小機能を実装します。

GSmallZoomControl

を使います。

履歴画面に遷移するボタン

の下に出すようするため、

GControlPosition

を使います。

map.addControl(new GSmallZoomControl(), new GControlPosition(G_ANCHOR_TOP_LEFT, new GSize(5, 34)));

こんな感じになります。

iPhoneやAndroidで見た時にはボタンが小さくなってしまいますが、あまり利用する場面が少ないと思いますので、とりあえず、良しとします。

それと、SQLiteが使える場合に、履歴画面に遷移するボタンを出すようにしていましたが、常に出すようしたので、SQLiteが使えない場合に履歴画面に遷移すると、「ごめんなさい」メッセージを表示するようにしました。

これでPCのブラウザでの使い勝手も、少しは良くなりました!

9月
04

Firefox 3.5では位置情報通知機能が実装されています。
次世代ブラウザ Firefox – 位置情報通知機能

なので、Strayed ChildをFirefox 3.5でも使えるようにしたいと思います。

Geolocation対応

まず、位置情報を取得する部分を実装します。
とはいっても、Geolocation API Specificationに準拠しているようなので、iPhone対応のロジックがそのまま利用できます。
Geolocation の利用 – MDC

ただ、

どのような仕組みで動作するのですか?

位置情報通知機能に対応した Web サイトを開くと、Firefox はあなたの現在地をそのサイトに知らせて良いかどうかを尋ねます。

知らせることを許可した場合、Firefox は近隣の無線 LAN アクセスポイントに関する情報と、あなたのコンピュータに割り当てられている IP アドレスを収集します。それから Firefox はその情報を既定の位置情報サービスプロバイダである Google Location Service へ送信し、推測されたあなたの現在地を取得します。そしてこの位置情報が、情報を求めてきた元のサイトに知らされます。

知らせることを許可しなかった場合は、Firefox は何もしません。

次世代ブラウザ Firefox – 位置情報通知機能より引用。

IPアドレスから位置情報を割り出している場合には、ほとんどの場合、位置情報に変化がありません。

日本を基準にして、現在地の緯度・経度ともに1秒(約30メートル)以上変化した場合に住所を再表示するようにしたいと思います。

flashcast:フリーで働くITエンジニア集団のブログ: iPhone OS 3.0のSafariでGPS機能を使ったWeb Applicationを作る!(iPhoneでテスト編)より引用。

2回目以降は地図上に住所が表示されなくなってしまいます。

これではつまらないので、初期表示時の仕様を少し変えます。

  • 位置情報通知機能が利用できる場合、getCurrentPositionを利用して位置情報を取得する。
  • 位置情報通知機能が利用できる場合、または、パラメータで緯度・経度情報を渡されたときのみ、住所を吹き出しに表示するようにする。

ということで、ロジックは以下のようになります。

 if (hasParam) {
  getAddress(new GLatLng(lat, lng), hasParam, isDbConnect);
 }
 else {
  if (gps != null) {
   gps.getCurrentPosition(
    function(e) {
     getAddress(new GLatLng(e.coords.latitude, e.coords.longitude), hasParam, isDbConnect, true);
    },
    function(error) {
     alert(error.message);
    }
   );
  }
 }

Firefox 3.5でStrayed Childにアクセスすると、こんな感じになります。

SQLite対応

試したのですが、Firefox 3.5.2ではHTML5 ローカルデータベース機能はまだサポートされていないようなので(2009/09/03時点)、実装できませんでした。

但し、flashcast:フリーで働くITエンジニア集団のブログ: Strayed ChildをAndroid対応(sqlite編)でも利用しているGears API – Google Codeをインストールすれば、Web ApplicationからSQLiteも操作できるようになります。

Gearsインストール済の環境でStrayed Childにアクセスすると、こんな感じになります(住所履歴画面に遷移するボタン、吹き出しの中の「save」ボタンが有効になっています)。

よかったら、試してみてください!
Strayed Child

5月
26

jQueryを使って簡単にfirefoxを拡張できるという、Jetpackがリリースされました。
もともと、firefoxのアドオン自体はjavascriptを使って作成できるので、いまいち利点がわからないのですが、とりあえず挑戦してみました。

Jetpack本体は、以下のページにあります。

Mozilla Labs Jetpack | Exploring new ways to extend and personalize the Web

アドオンが作れる!といっても、本当にアドオンが作れるわけではないようです。
実際はJetpackアドオンをインストールすると使えるようになる、Featureと呼ばれるスクリプトを簡単に作れるようになるみたいです。

Featureはjavascriptで記述し、jQueryと専用のAPIを使用することができます。
この辺の開発の手軽さが、Jetpackの魅力のようです。

使い方も簡単で、Featureの本体(jsファイル)と、公開(ダウンロード)用のHTMLを用意し、Jetpackインストール済のFirefoxからアクセスすると、画面上部にインストール用の領域が出てきて、そこからインストールできます。

と、いうわけで、昔作成したfirefox用のアドオンを移植してみました!
erina59snap :: Firefox Add-ons
ボタンを押すと表示されているページをjpgにして保存するアドオンです。
これを、Jetpack用のFeatureとして移植してみたいと思います。

まずは、スクリプトを作成します。

ステータスバーにアイコンを表示し、クリックされた時に処理を行うことにします。
ステータスバーへのアイコン表示は、APIを使って簡単に実装できます。

jetpack.statusBar.append({
 html:'<img src="http://www.tonosamart.com/erina59jet/erina59jet_icon.png">',
 width:19,
 onReady:function(doc){
  //click時の処理
 }
});

あとはclick時の処理の場所に、昔作成したjavascriptをほぼそのまんまコピーしました。
これで、スクリプト部分は完成です!

次に、公開用のHTMLを作成します。

<link rel="jetpack" href="erina59jet.js">

こんな感じで、linkタグでスクリプトを指定すると、ページの上部にインストール用の領域が表示されるようになります。
それ以外は普通のホームページと同じ要領でページを作成します。

と、いうわけで完成したのが以下になります!
erina59jet
作り始めるときは若干不安でしたが、移植ということもあり、15分くらいで完成しました。

Jetpackをインストールした状態で、上記リンクを開くと、ページの上部にインストール用の領域が表示されます。

あとは、ページの説明に従って、Featureをインストールしてみてください。

インストールすると、ステータスバーにアイコンが追加されます。
アイコンをクリックすると、開いているページがjpg画像としてデスクトップに保存されます。

ただ、APIの仕様だと思うのですが、アイコンの表示位置が若干(2px)上に表示されるので気持ち悪いですね・・・。
まあ、そのうち直ると思ったのであえて工夫せずにそのままにしておきました。

最初は正直微妙な感じでしたが、実際作ってみるとアドオンを作る場合にくらべ、いちいちxpiにパッケージングしなくてもいいので、非常に簡単でした。
また、今回は使いませんでしたがjQueryの命令が使えるのも楽でいいです。

ただ、セキュリティ的には若干怖さも残ります。クライアントにファイルが作れるのは便利な反面やっぱり怖いです。信用できるスクリプト以外はうかつに実行できないですね・・・。

とはいえこれは、覚えておいて損はないと思います!

あと、この記事を書いている途中に気がついたのですが、firefoxの実験的なアドオンがAMOのユーザ登録をしなくても使えるようになっていますね。

この記事のもとになったアドオンがerina59snap :: Firefox Add-onsにあるので、よかったらこちらも試してみてください!
(レビューがたくさんたまったら、実験的なアドオンじゃなくなるらしいので、よろしくお願いします。)

4月
01

インターネットで調べ物をする時に検索結果の1ページ目に目的の結果が得られなかったら次へリンクを押して次のページに進みますよね?
2ページ目に目的のページがあればそんなに気にならないのですが、これが10ページとか20ページまで進めようと思うと次へリンク押すのがだんだんめんどくさくなります。

そこで今回Firefoxで次へリンクをクリックしなくても自動で次のページが表示されるようにしたいと思います。

Greasemonkeyプラグインを導入する
Greasemonkey :: Firefox Add-onsからGreasemonkeyプラグインをダウンロード・インストールします。

[Firefoxへインストール]ボタンをクリックします。

[今すぐインストール]ボタンをクリックします。

[Firefoxを再起動(R)]ボタンをクリックします。

AutoPagerizeユーザスクリプトを導入する
AutoPagerize for GreasemonkeyからAutoPagerizeユーザスクリプトをダウンロード・インストールします。

[Install]アイコンをクリックします。

[インストール]ボタンをクリックします。

これで設定完了です。
googleで検索をしてみます。

検索結果を下にスクロールしていくと・・・

2ページ目が自動で展開されていますよね。

今までみたいに次へリンクをクリックしなくてもよくなりました。
※検索時に検索結果全てが表示されるのではなく、あくまでも画面を一番下までスクロールすると次のページがひょこっと下に伸びるんです。

一部自動ページ表示にならないサイトもあるようでして、Firefoxのツールバーより[ツール]-[Greasemonkey]-[ユーザスクリプトの管理]を選択してAutoPagerizeユーザスクリプトの設定をみるとユーザスクリプトを実行しないページとして
 https://mail.google.com/*
 http://b.hatena.ne.jp/*
が登録されていました。

ちなみに今回ご紹介した環境はUbuntu8.10のFirefox3.0.8ですが、このプラグインはマルチプラットフォーム対応されていて、WindowsやMacOSXのFirefox3.0.8でも導入可能でした。

12月
07

新しくノートパソコンを買ってからかれこれ、3か月たったのですが
なんかfirefoxの使い勝手が悪い・・・

というわけで、忘れがちな細かい設定の仕方をメモ
みなさんも、便利なので設定してみてください。

まず、ロケーションバー(アドレスバー)に

about:config

と入力します。そうすると、設定が変更できるので
以下の設定をします。

JavaScriptのエラーをコンソールに出力する

javascript.options.showInConsole
true

JavaScriptのエラーを厳密にする(警告も出る)

javascript.options.strict
true

検索バーの検索結果を別タブで表示

browser.search.openintab
true

ちなみに、firefox3では、

browser.tabs.loadFolderAndReplace

がなくなっていますね・・・
設定変更はできるんだけど、機能しません。

おいらは、別タブで開く系が好きなので不便です。

一応代案もあるので、これもメモしておきます。

・リンクを別タブで開く
→マウスの真ん中のボタンを押す。
※お気に入りとかでも使えます。

・アドレスバー(ロケーションバー)に入力したURLを別タブで開く
→alt+Enterを押す。

話がそれてしまいましたが、about:configの設定は細かいところを変えられる分
適当に変えてはいけない項目もありますので、自己責任で設定してみてください!

  • Search:
  • flashcastとは?

    東京を中心に、現在フリーランスとして活動しているITエンジニア、および、かつてフリーランスとして活動していた起業家達が立ち上げたコミュニティーです。

    みんなで集まって面白いことをやろう!形に残そう!ということで、ブログをはじめました。

    技術情報や、フリーエンジニアに役立つ情報などを、ご紹介できたらと思っています。

    お問い合わせ:
    info@flashcast.jp
  • カレンダー

    2010年7月
    日曜日 月曜日 火曜日 水曜日 木曜日 金曜日 土曜日
    « 6月    
     123
    45678910
    11121314151617
    18192021222324
    25262728293031
  • メンバー紹介

    もじゃもじゃ
    flashcastのリーダー

    3年ほどフリーのITエンジニアとして活動。現在は、社員2名の株式会社を経営しています。

    一攫千金を夢見る野心家です。

    ライブキャスト

    yasu
    ダイバー

    自宅サーバーでホームページを作り始めました。

    少しずつ記事を増やしていきますので足を運んでください。

    よろしくお願いします。

    sa-sa-ki.jp

    のら
    たびびと

    ねこ好きに悪人はいなーいっ!!

    バイクや車も好きです。

    めぐ
    デザイナーのたまご

    音楽とデザインとお酒をこよなく愛する永遠のダイエッター。

    現在ペンタブレットでイラストを勉強中。

    Hiro
    コンサル

    PMやSEの案件を業務委託で請けることが多いですが、小規模案件も受託でやっています。

    得意な分野はマイクロソフト製品や関連技術によるシステム構築です。

    KEI
    取締役の風格

    最年少なのに、メンバーで1番の貫禄の持ち主!?

    C#や.netなどサーバ側の開発が得意。

    ろっきー
    美食家★パパ

    自分にとっての息抜きは、ドライブして温泉に入って、美味しいご飯を食べる事。

    ココロとカラダのリフレッシュを大切にし、日々の仕事に励む一児の父親です。

    郵便番号検索

    my-hobby

    とのさま
    げーむのおうさま

    大人なのに好きなことしかやらない駄目人間。

    Web系が得意、アクセスは苦手><

    tonosamart.com

    セクレタリアト
    ギャンブラー

    フリーランス時代は仲間の現場を探すことが多く、それをきっかけに会社を設立。

    現在はSI業に特化せず、他の業種にも興味を持ち始めています。

    メドレー株式会社

  • 広告