Firefox1.5のiframeネスト対策

iframeが親ページと同じURLをsrcに持つ場合、無限にネストしてしまう。 これをブラウザが律儀に表示しようとすると、動作が重くなって、その内クラッシュしてしまうだろう。 Firefox1.5では、このような場合にiframeをロードしないようになっている。

Firefoxの1.0系にこの対策があったのかわからないが、少なくともJavaScriptで動的にiframeを作成する分には、この制限には引っかかることがなかった。

1.5系(1.5.0.1)では、動的に作成する際にもチェックがかかっている。 iframeがうまく読み込まれない場合は、srcに親ページと同じURLを指定していないか気を付けてみよう。

| | Comments (0) | TrackBack (0)

ココログでもhtmlArea - htmlArealet

 以前紹介した、htmlAreaブックマークレットを改造。

 htmlAreaは、テキストエリアをHTMLエディタに改造するツールです。ただし、サーバに組み込む必要があるので、ココログのようなレンタルのブログでは利用できませんでした。

 これを改造してサーバに組み込まずに利用できるようにしたのが、「htmlArealet」です。もちろん、ココログの投稿ページだけでなく、他社のブログでも利用できます。

 以前のバージョンではうまく動かなかった別ウィンドウでの処理も、今回のバージョンで問題なく動くようになりました。

htmlArealet(IE用)
htmlArealet(Firefox用)

使い方は、

  1. 上記のリンクを右クリックして、お気に入りやブックマークに登録
  2. ブログの投稿ページなどを開いて、登録した「htmlArealet」をクリック
  3. 編集したいテキストエリアをクリック

これで、HTMLエディタが起動します。

 編集中は <> のアイコンでテキストエリアとHTMLエディタの切り替えができます。
HTMLの編集に慣れている方もプレビューツールとして利用できるので、サーバが重いときには便利だと思います。

お気軽にご利用下さい。
ご意見、ご要望などありましたら、コメント欄にどうぞ。

| | Comments (0) | TrackBack (1)

Firefoxのシェア

 このブログのアクセスログを調べると、ここ30日ほどのブラウザシェアはFirefoxが63%でした。 感覚的にはもうちょっと多い様な気がしていたのですが、それでも実際の普及率を考えると多いですね。

 ちなみに検索キーワードを見てるとずいぶん期待はずれなことばかり書き散らしているものだと反省させられます。 あんまり意味のないことばかり書かずに、もちょっとFirefoxの普及につながるような記事も書かねば。。。

| | Comments (0) | TrackBack (0)

HTMLファイルがlocal contextで解釈される危険性

Mozilla-gumi Forum [One Message View / [FYI]うかつに「open, save, cancel」のダイアログでOpenしないこと]より。

セキュリティホール memo
 Mozilla Firefox 1.0 / Mozilla 1.7.x / Opera 7.51〜7.54 に欠陥。 HTML ファイルを Content-Type: text/html. (ドットつき) で受けると、 これらのブラウザでは「open, save, cancel」のダイアログが開く。ここで open を選択してしまうと、HTML ファイルを local context で解釈してしまう。 これにより、HTML ファイルに含まれる JavaScript が local context で実行されてしまい、ローカルファイルを盗み読むなどの攻撃が可能となる。

 これって、安易にローカルに保存したHTMLを開くことに対する警告でもあるんですよね。
以前に取り上げたScrapBookもそういう意味では危険です。 これは、なんかも同様だったと思いますが。スクリプトを完全に殺してくれないことには気軽に使うわけにはいかないですね。

| | Comments (0) | TrackBack (0)

Firefoxパスワードマネージャーの脆弱性

 Firefoxには、入力したパスワードをサイト毎に保存しておく機能があります。認証が必要なサイトでログインしようとすると、「パスワードマネージャー」がログイン情報を記憶するかどうかきいてきます。ここでパスワードマネージャーに記憶させておくと、次回ログインページを開いたときにはIDとパスワード欄が入力済みの状態で表示されます。

 この機能はとても便利なのですが、ちょっと問題もあります。

 ログイン情報を記憶させたページとは別のページであっても、同じドメインであればこの機能が有効になってしまいます。これは、ログイン情報がドメイン毎に記憶されるためです。

 例えば、 http://example.com/ にログインフォームが設置されているとし、ここでログイン情報を記憶すると、 http://example.com/hoge/hoge.html に設置された同様のフォームでも、IDとパスワードが入力済みとなります。

 これの何が問題かというと、このIDとパスワードはJavaScriptによって取得できてしまうのです。利用者が自由にHTMLやJavaScriptを設置できるサービス(ブログとか)があり、そのサイトでは同じドメインにログインフォームが設置されていたとしましょう。このドメインでログイン情報を記憶してしまうと、誰かが仕掛けたトラップによって、ID/パスワードが抜かれてしまう可能性があります。

 同様の機能はIEにも搭載されていますが、IEの場合は実際にIDを入力しない限り、パスワードが入力欄に復元されることはありません。また、同じドメインであっても別ページのフォームは、別のログイン情報と判断するようです。

 残念ながら、これはFirefoxの問題だと思います。IEのように別ページのフォームは別のログイン情報と判断するべきでしょう。この問題が認識されているかどうかわかりませんが、次期バージョンで修正されるとありがたいです。それまでは、少し慎重に利用したいと思います。

| | Comments (0) | TrackBack (0)

FirefoxのinnerHTMLとMIMEタイプ

FirefoxではMIMEタイプを
application/xml

application/xhtml+xml
と判断したときは、innerHTMLがReadOnlyになるようです。
正確にはReadOnlyではなく、書き込もうとすると対象要素の子ノードが消滅してしまいます

ちなみに、HDD上のファイルは拡張子で判断します。
hoge.xml -> application/xml
hoge.xhtml -> application/xhtml+xml

サーバ上のファイルは、HTTPヘッダのContent-typeで判断しているようです。
拡張子は関係ありません。

時々、xhtmlでうまく動かんなーと思いつつほったらかしにしていましたが、ようやく原因が分かってすっきりしました。

| | Comments (0) | TrackBack (0)

Alternateリンクをプレビューするブックマークレット

 前回のエントリで、ライブブックマークのお話をしましたが、右クリックから追加できる拡張があるようですね。

ryuzi_kambeの日記 - RSS Auto-Detect をプレビューする拡張機能
LiveBookmarkThis
だそうです。

 で、「RSS Auto-Detect をプレビュー」するブックマークレットを作ってみました。なんか意味を取り違えているかもしれませんが。。。

Alternateプレビュー

iframe内に<link rel="alternate"なものを表示するだけです。タイトルだけ抜き出そうと思いましたが、面倒なのでやめました。iframeの上のリンクをクリックすると、前のエントリ同様、新しいウィンドウが開いてライブブックマークに追加できます。

| | Comments (0) | TrackBack (0)

リンクのRSSをライブブックマークに追加する時にちょっと便利なブックマークレット

 Firefoxのライブブックマークのお話。

 通常、ライブブックマークはステータスバーの右に表示されるアイコンから追加すると思いますが、表示されない場合の追加方法を調べてみました。

 ブックマークの管理画面を開いて、[ファイル] -> [新しいライブブックマーク]で新しいライブブックマークが追加できます。RSSのURLは追加したライブブックマークのプロパティ画面で指定できます。

 このメニューは、ブックマークツールバーの右クリックや、ブックマーク管理画面のツールバーに表示されないので気づきにくいですね。

 せめて、リンクを右クリックした時に[このリンクをライブブックマーク]というメニューがあっても良さそうです。現状では上記の方法で追加するしかないようですが、これではちょっと不便ですので強制的に追加アイコンを表示するブックマークレットを作ってみました。

RSSリンクをライブブックマーク

使い方
  1. RSSのリンクがあるページでこのブックマークレットを実行します。
  2. 追加したいRSSのリンクをクリックします。
  3. 新しいウィンドウが開いて、ライブブックマーク追加アイコンがステータスバーの右に表示されます。

Bulknewsなどで使うと便利です。


2005/1/24 ちょこっと修正。

| | Comments (0) | TrackBack (0)

MyRSSに登録するブックマークレット

 表示しているページをMyRSSに登録するブックマークレットを作ってみました。

  MyRSSに登録 Firefox、IE用

 ログインしてないとエラーページが表示されます。できれば、TOPページにでも飛ばしてほしいので、要望として管理人さんのブログにトラックバックしておきますログインページが表示されるようになりました。

 ちなみに、RSS FeedをBloglinesに登録するときは、次のリンク先にあるブックマークレットを使うと便利です。

 RSS Feedの登録を簡単に

 このブックマークレットをMyRSS個人ページで実行すると、RSS FeedのリンクがBloglinesへの登録リンクになります。こちらも、Bloglinesにログインしておく必要があります。

| | Comments (2) | TrackBack (2)

複数単語でググるブックマークレット

ページ中の単語を複数選択し、グーグルで検索するブックマークレットです。

複数単語でググる Firefox用

単語を選択するたびに、検索を実行するか尋ねてきます。キャンセルを選ぶと別の単語を追加選択することができます。
検索したい単語をすべて選んだら、OKを選んで検索を実行します。

| | Comments (0) | TrackBack (0)

ScrapBook :: Firefox Extension

ScrapBook :: Firefox Extension
ScrapBook はWebページの保存と収集したコレクションの整理を手助けするための Firefox 拡張機能です。 おもな機能は…

* Webページの保存
* Webページの選択範囲の保存
* リンク先ファイルも含めたWebページの保存
* ブックマークツリーと同じような操作でコレクションを整理
これは便利そうだ!

| | Comments (0) | TrackBack (0)

JavaScript Include Trackback

Apacheのモジュールとして動作するTrackBack Pingサーバについての紹介記事。
mod_trackback : NDO::Weblog

Marklet ID: 04-08-31-1

本質とはずれますが、受信した Trackback の一覧を JavaScript で配信できるというアイデアはいいかも。Trackback送信元 URL が JavaScript で表示されるのであれば、それによる SEO 効果はほとんどないので Spammerのやる気を削ぐ効果がありますね。
Blog とかではなく、何か別のウェブアプリケーションで Trackback を集積するようなものでは、JavaScript Includeでの Trackback 一覧表示が賢いような気がしてきました。

「JavaScript Includeでのトラックバックの一覧表示」は、私も以前に実装していたので反応してみました。
スクリプト埋め込み型Trackback
トラックバックに対応していないページに擬似的にトラックバックするためのブックマークレット(関心トラックバック)を作った時に、だったら最初からスクリプトを埋め込んでおけばどこでもトラックバック対応ページになるよなと思って作ったみたものです。

この疑似トラックバックの機能は、将来的に次のような使い方をしてみたいと考えています。
ウェブで調べものをしていて、過去訪れた資料(URL)に再びたどり着くことがあります。
(ブックマークをせずにその都度検索するというのは最近はよくあることだと思います。)
その資料から得た情報を自分で記事にまとめていた場合、その記事からのトラックバックがあれば、容易にその記事にたどり着くことができて便利ではないでしょうか?
つまり、逆リンク集を作成するイメージですね。
通常、リンク集は自分のサイトから外に向かいます。
それとは逆で、自分が記事を書いたり、注釈をしたりしたページ(ソース)から、その記事や注釈に対してリンクを張っておくことになります。

問題は、疑似トラックバックの存在を知るにはブックマークレットを使わなければいけないことです。
つまり、ブックマークレットを実行してみるまでは記事の存在が確認できないということです。
これははっきりいって嫌です。無かったときのガックリ感が。
そこで、これを解決するために、ページをロードしたときに自動的にトラックバックや注釈の存在を調べる拡張機能をFirefox用に作ってみたいと考えています。(ずっと前から…)

ところでトラックバックスパムはSEO効果も狙っていたんですね。
なんとなく、クリックして見に来てもらうためだけかと考えていました。

大元の記事
MODULE.JP ApacheモジュールによるTrackBack Pingサーバの実装

| | Comments (0) | TrackBack (0)

英語版Firefoxでの文字化け

Markletには英語版のFirefoxで利用すると文字化けをする問題がありましたが、Firefox側の設定で回避できることがわかりました。
intl.charset.defaultをShift_JISに書き換えてあげると文字化けしないようです。

具体的には、

  1. アドレスバーにabout:configと入力して設定画面を開きます。
  2. intl.charset.defaultを探す。Filterの部分にintl.charset.defaultと入力していくとフィルタリングされて見つけ易くなります。
  3. intl.charset.defaultをダブルクリック、または右クリックでModifyを選択し、Shift_JISに書き換えればOKです。

Firefox0.8の日本語版からFirefox0.9.1の英語版に入れ替えているときに調べて分かりました。

| | Comments (0) | TrackBack (0)

Reload Every

前回、『複数サイト表示&自動更新』のブックマークレットを紹介しましたが、自動更新単体での機能はFirefoxの拡張機能にあるみたいですね。

『Mozilla』ブラウザーを強力にする各種の拡張機能

Marklet ID: 04-07-12-1

『リロード・エブリー』(Reload Every)を使えば、ウェブページ上で右クリックするだけで、数秒あるいは数分おきといったように、指定した間隔で自動的にページを更新してくれる。ニュース、スポーツのスコア、株価をチェックするには非常に便利だ。

| | Comments (0) | TrackBack (0)

Firefoxで複数サイト同時表示&自動更新ブックマークレット

みなさんはブラウザのウィンドウって、常に最大化してますか?

人によっては、最大化して使うことは馬鹿げている(何のためのウィンドウなのか)と考えるようですが、私は、ブラウザに限らずターミナル以外のウィンドウはたいてい最大化して使っています。それは、ウィンドウ内になるべく多くの情報を表示して、できればスクロールなどをせずに一目で見たいからです。タスクバーやキーボードでウィンドウを切り替えることには、それほど煩わしさを感じることもありません。それよりも、小さなウィンドウがスクロールバーを出して情報を隠していることの方がよっぽどストレスなのです。

そういうわけで、ブラウザを最大化していても滅多に不便を感じることはなかったのですが、あるサイトだけは不便だなーと感じることがありました。それは、リアルタイムに更新されるページで、似たようなページをいくつか同時に表示します。答えを言ってしまうと株価(チャート)を見ていたときのおはなしです。半年ほど前にネットでの株取引を始めたのですが、その頃は自分の買った株の値段が刻々と変化していくのがおもしろくて、暇さえあれば(無くても)何度もリロードして、株価をチェックしていました。

そのときに、いちいち銘柄毎にウィンドウを切り替えて(正確にはタブブラウザのタブなのですが)、リロードしなければいけないのがとても煩わしく感じられました。というわけで、そのときに作ったブックマークレット、1ページに複数のサイトを表示して、自動更新をしてくれるというものです。

複数サイト表示&自動更新

このブックマークレットを実行すると、行数と列数を尋ねられます。たとえばrowを1、colを2とするとページが左右に分割されて2ページ分の表示エリアができます。
テキストボックスがアドレスバーになっていますので、表示したいページのURLを入力して、goをクリックして下さい。
自動更新を行うにはtボタン(timerのtです)をクリックして、更新間隔(秒)を指定します。

※自動更新を行う場合は、くれぐれも対象サイトの迷惑にならない更新間隔にしましょう。

Firefox0.8で動作確認しました。

| | Comments (0) | TrackBack (1)