Firefox10.0.2でScreenGrabを有効にする


僕の敬愛するプラグインのひとつ「ScreenGrab」が動かなくなった。

「Firefox10.0.2と互換性がありません」とのことだけど、昨日まで動いてた気がするんだけどなぁ
勝手にバージョンアップしたのかもしれんがまぁいい

以下無理矢理プラグインを有効にする手順。他のプラグインでも使える。
動作保障対象外なので自己責任で。


アドレスバーに

about:config


警告は無視。適当に右クリックして、 

新規作成>真偽値

設定名:extensions.checkCompatibility.10.0
値:false


アドオンマネージャでScreenGrabが有効になっていることを確認してFireFox再起動。


おしまい。

ブラウザキャッシュ対策

Webサイトのファイルキャッシュ残ってしまう系の問題は昔からしょっちゅう目にするので、いい加減少しまとめとく。


画像やJavaScriptcssを更新した後、ユーザーのキャッシュに古いファイルが残ってて、正しく表示や動作しないことがよくある。
Ctrl+F5押せよって言いたいけどそうもいかないので、キャッシュを制御する設定を入れる。


普通は .htaccess にこんな感じで。


Header set Cache-Control no-cache


でもそんなしょっちゅう変わるわけじゃないし流石に毎回読み直しは…ってことがよくある
なので時間指定することもある。
下記の例で1時間有効。


Header set Cache-Control "max-age=3600"

でも結局ユーザーが使ってるブラウザが上手く設定を理解してくれなかったり、
プロキシサーバーが勝手にキャッシュ残したりするので確実じゃない。


絶対確実にって場合は、ファイル読み込み時にパラメータつけて読み込む方法がある。
以下のように後ろにパラメータつけてやれば、違うファイルと認識して読み直してくれる。
当然、パラメータが以前と同じだったらキャッシュが効いてしまう。
まぁ現在日時を動的に出力すれば事足りると思う。

<img src="./../hoge.jpg?20120229200901" alt="hoge" />

各ソーシャルボタンをサイトに実装

最近良くある色んなソーシャルボタンをサイトに設置しようっていう話。

twitter/ツイートボタン

以下サイトで設定してソースを取得すればいいだけ。簡単。
http://twitter.com/about/resources/buttons#tweet


facebook/いいね!ボタン

これも以下アドレスから作れる。
http://developers.facebook.com/docs/reference/plugins/like/


google+/+1ボタン

これも以下アドレスから作るだけ。スクリプトを記述しなければいけないことだけ注意。
http://www.google.com/intl/ja/webmasters/+1/button/index.html


mixi/イイネ!ボタン

mixiが一番めんどくさい。しかしパクり方に躊躇がないなほんと。

  1. まず、mixiDeveloperCenter(http://developer.mixi.co.jp/)に行って、右上のログインからログインする
  2. パスワードの確認から始まって、各種情報、携帯メールアドレスを要求されるので入力
  3. 携帯に来たメールから携帯でアクセス
  4. 携帯でログインすると承認完了する。
  5. PCにもどって、mixiDeveloperCenter(http://developer.mixi.co.jp/)に行って、右上のログインからログインする
  6. パスワード再入力するとPartnerDashboardが表示される
  7. mixi Plugin」に、ボタンを設置したいwebサービスを設定する
  8. 設定されたwebサービスをクリックすると、ボタン作成画面が表示されるので、設定してソースを取得する

他にもevernoteやらdeliciousやらgreeやらなんやらありますけどね。メジャーなのはこの程度でしょうか。


あ、はてブ忘れてた。

firefox4,5における空のimgタグの挙動

後輩が何故か同じページに2度アクセスされてしまうとのたまってたので調べた。

firefox4か5で、

<img src=""/>

みたいな感じで、srcを空にしたimgタグを書いてると、
imgタグが現在開いているページ自体を読み込むようだ。


どーなんだろうこの仕様。
まぁパスあるならちゃんと書けよ、ないならタグ自体書くなって話が前提だが。



■2011/8/19 追記■

この件についてガチで調べてくださった方がいた。ありがたや。
http://d.hatena.ne.jp/teramako/20110809

DWRを利用したAjaxを実装する。


公式サイト

http://directwebremoting.org/dwr/index.html

この辺参照

http://www.atmarkit.co.jp/fjava/rensai4/myeclipse02/myeclipse02_1.html

web.xmlサーブレットの設定追記


dwr-invoker

org.directwebremoting.servlet.DwrServlet


debugデバッグ設定
true



dwr-invoker
/dwr/*


javaクラスを適当に作成して、呼び出すメソッドを書く。今回は getLoginId()
dwr.jarをプロジェクトに追加してクラスパス通す。

dwr.xmlを作成して、以下のような感じで設定








Ajax呼ぶページで、以下3つのjsを読み込み。
これらは実体はないけど勝手にサーブレットが生成してくれてるっぽい。




Javaでのメソッド呼び出しみたいな感じで呼べるようになる。

// ログインID取得メソッド
function getLoginId() {
[クラス名].getLoginId(callback);
}
function callback(loginId) {
$("[name='loginId']").val(loginId);
}


おしまい。

Webサーバーにパスワード認証をかける

WEBサーバー(Apache)で、特定階層にパスワードをかけたい。
httpd.confはめんどいので触らず、.htaccessと.htpasswdのみでBASIC認証を実装する。

.htpasswdを作る

コマンドプロンプト

cd [APACHE_INST]\bin
htpasswd -c [C:\.htpasswd] [任意のユーザー名]

パスワード入力したら C:\.htpasswd ファイルができる。

.htaccessを作る。

AuthUserFile [.htpasswdの設置場所フルパス]\.htpasswd
AuthName "[任意のタイトル]"
AuthType Basic

require valid-user


deny from all

.htaccessを制御したいフォルダに設置する

おしまい