Chromeはfile://でhtmlを開くとフレーム内ページがクロスサイト扱いになる

ローカルのファイルをブラウザで直接開いている時(いわゆる、htmlファイルをダブルクリックして開いたfile://始まりのアドレスで表示される状態)だと
Chiromeは相対パスで指定したページ同士でもクロスサイト(つまりhttpからパスを書いている外部ドメインのウェブサイト)扱いになるもよう。

“Chromeはfile://でhtmlを開くとフレーム内ページがクロスサイト扱いになる” の続きを読む

IE6でposition:fixed;

cssで固定表示させるためにはposition:fixed;を設定しますが
IE6がこのプロパティに対応していないという…。

IE6用にposition:absolute;でいったん絶対位置表示を設定しておいて、
javascriptのスクロールイベントでスクロールした分だけcssのtopの値を増やすという手もありますが
これだとスクロールしたときガタつきがでてしまいます。

IE6だけの対策をわざわざ行うなら、スクロールがなめらかに仕上がるので expression のほうがおすすめです。

“IE6でposition:fixed;” の続きを読む

Firefoxとjavascriptのwindow.close()

久々に実装不可事例を見つけたのでメモ。

Firefoxは、javascriptで開いたwindowしかjavascript制御で閉じさせることができない。
これは、セキュリティポリシーでそう取り決めて実装されている仕様なので
サイト制作者レベルが小技でどうにかすることはできません。

つぎ、お客様に実装希望をいただいたら、実現不可であることを丁寧に説明することにしよう…。

以下サイトの検証がかなり参考になりました。

参考サイト
http://www.drk7.jp/MT/archives/001591.html

html5のplaceholderをIEで再現するjQueryプラグイン

練習で、html5のplaceholder(プレースホルダー)をIEでも再現するためのプラグインを作ってみました。

このように、対応ブラウザ向けの記述だけでIEでもプレースホルダーらしい機能がついた状態になります。

<input type="text" name="name" placeholder="名前を入力して下さい">

試作版ということで、主にこんなところが抜けています

  • プレースホルダーの内容がフォームより長い場合は、はみ出す
  • フォームをブロック要素(div)で囲う仕組みなので、どんなレイアウトでも簡単に組み込めるか不明
    とりあえず、よくある<table>タグで組んであるフォームでは差し支えなかった…。
  • スタイルシート部分が決め打ち状態なのでカスタマイズは面倒

jQuery1.7 + IE6,7,8,9で、動いてることを確認しています。
1.7にした深い意味はないし、メジャーバージョンに更新する時は1.6から対応に落とそう。

デモも設置してないし、適当すぎやな。

“html5のplaceholderをIEで再現するjQueryプラグイン” の続きを読む

自作jqueryプラグインの最小構成

jQueryプラグインの最小構成をメモ。

(function($){
	$.fn.プラグイン名称 = function() {
		return this.each(function() {
			ここに処理を書く
		});
	};
})(jQuery);

例:上記のプラグインをpに適用するときは、こう書く。

$('p').プラグイン名称();