iframeを持つ1つのhtmlを使い回して
中身だけを変更したいんだけど何かいい方法はないかね?と聞かれて
iframeの中身をバラバラに作るくらいならiframeやめなよと答えたけど
気になったので少し考えて
location.~が使えそうじゃない?と以下のソースを書いた

親(index.html

子iframeがあるhtml(after.html

これで、親ページのリンクの?以下の名前
(after.html?http://yahoo.co.jpならhttp://yahoo.co.jp)のファイルを
子のiframeで開けるのだが
これ、大丈夫なんでしょうか?

でalertがでるけど、alertを任意に使えるって事は何か別の事がされるんだろうか?
パスワードなんかを扱わないページは気にしなくていいのだろうか。
という感じで使えるものかわからんので教えてない。


凄く滑らかなロールオーバーを超お手軽に実装できるrollover2.jsというものがあるんですが
クロスフェードするロールオーバー処理をお手軽に実装するJavaScript – KAZUMiX memo
クロスフェードするロールオーバー処理 動作サンプル – XHTML サンプル | KAZUMiX memo

これ、imgにvertical-align:bottom;や
vertical-align:top;を指定してある場合、
operaでpositionの基準点がうまくいってないような感じの
とんでもない表示になってて(v10.50以前は確認してないけど)

例 / positionの基準点がうまくいってない感じの表示
[image]左がfirefox、右がopera

今気づいたけど
aタグの中にrollover2.jsのロールオーバー対象になるimgだけが入っていると
おかしくなる。

aタグの中にimgの他に、テキストが入っているとおかしくならない。

蛇足 / imgにvertical-align:bottomしたい(してる)理由

ご存知vertical-alignの初期値はbaselineなので
アルファベットのg,j,p,q,yの下に飛び出る部分(ディセンダって名称らしい*1)の余白が確保され、テキストと並べた時にimgの下に隙間ができちゃう

この隙間を埋めるには、vertical-align:text-bottomを指定するのが定石みたいなんだけど
operaだとテキストの位置がズレてたので(10.50以降?)、
いつしかbottomで指定するようになって
しばらくしてbottomを指定するようになった理由を失念してました。

[image]text-bottomとbottom
今確認してみたらbottomも表示が変だった><;;;なんだこれ。

とりあえず
vertical-align:text-bottomを指定しとけば
operaでクリック出来なくなるくらい表示が崩れる事はないのかな?

ここから先は失敗を含む試行錯誤メモ

Continue reading


サンプル / http://sakurachiro.com/_exercise/html_css/zoom1/index.html
(IEで表示倍率を変更すると確認出来ます)

ブラウザの表示倍率をリセットする方法は無いかな?と試行錯誤してみました。

ちょっと調べてみるとscreen.devicexdpiってのを使うと画面のdpiがわかるみたい

参考にさせてもらったページ
javascript screen deviceXDPI, deviceYDPI, logicalXDPI, logicalYDPI
deviceXDPI Property (screen, Screen Constructor)
これでできる! クロスブラウザJavaScript入門:第19回 CSSOM View Module解説

windowsは96でIEの表示を400%にしてる時は384。

そこに直接数字を入れたらコントロールできるかのか?と
screen.devicexdpi=96;みたいにしても反応なし。
読み取るだけなのか、使い方を間違ってるのかとにかくこの方法じゃ出来なかった。

なのでzoomプロパティを使って拡大してる分を縮小させてみる事に。
こんな感じ

zoomを1になるようにしても
横幅が拡大した時のサイズにあわせて変更されちゃうので
document.body.clientWidthを倍率に合わせて拡張

スクロールバーが表示されるのでbodyにoverflow-x:hidden;を指定して切捨て。
window.onloadとwindow.onresizeで呼び出してみたけど
書き方が悪いのかwindow.onresizeがあると横幅が異常に広がってしまうので削除した。

なんとなくokぽい感じがしないでもないけど
上下marginがあると拡大したままになってしまうのよね、これ。

縦のスクロールも伸びっぱなしでした。
ん~もうちょっと頑張らないと使い物にならないかなぁ。


たくさんリンケージする時、手動だと面倒なのでjsflでパパパッと済ませてしまおうというメモ。

参考1:リンケージの設定を自動化する | tanablog
上記のソースだとHOGE+連番なので
任意の接頭語+連番になるように少し書き換えて.jsflとして保存

こんな感じ。

ライブラリの名前を活かしてリンケージさせるならこんな感じ?

リンケージを解除するjsfl[引用]

プロンプトでラジオボタンみたいなのを表示させて処理を分岐させるにはどうしたらいいんだろう。

参考2:Flashの拡張機能(pdf)

使い方メモ

[コマンド] – [コマンドの実行]からか
作成した.jsflを以下に保存するとツールバーのコマンド内に出現する

xpの場所
[text]
C:\Documents and Settings\[ユーザ名]\Local Settings\Application Data\Adobe\Flash CS3\ja\Configuration\Commands
[/text]
参考3:jsflのすすめ – yama-ko.net blog


こちらのページをそのまま参考にしてhttp://ja.w3support.net/index.php?db=so&id=153152
iframeで別ドメインにあるページを開いた時に、自動的にheightを調整する方法を試してみた。
(※ 別ドメインにあるファイルにjsを追加する必要あり)

別ドメインのhtmlに手を加えずに出来たら、確実に嬉ションしちゃうけど難しいみたいすなぁ。

Continue reading


ddaccordion.js v1.9現在のお話
Dynamic Drive DHTML Scripts- Accordion Content script (v1.9)

このjs最後にクリックした要素をcookieに保存して
ページ変移後に最後にクリックした要素を開いた状態で移動出来るという便利なオプションがあるんだけど
子を持たない親だけのメニューが混ざっていると、
最後に子メニューを持った親をクリックした場所を記憶してしまい
ページ変移後に変なところが開いてしまう(分かりづらいと思うけど)
みたいな面倒な感じだったので途中経過をメモ。

多分すべての要素が子階層を持っているなら問題は無いのだけれども。

Continue reading


[image]取得する値が合わない
(1マス=100px)

ブラウザのbody部分のサイズを取得したくて

とやってみたらFirefoxが吐き出す値が大きすぎるうえに
あるサイズ以下になると一定の値しか返さなくなる。

アドオンがいけないのかな?とか色々消していったら
ナビゲーションツールバーを非表示にした時に期待した値を取れるようになりました。

[image]ナビゲーションツールバーを非表示

ナビゲーションツールバーを無視してサイズを取得するにはどうしたらいいんだろう…