iframeのリサイジング

iframeをリサイジングする実験です。

概要

Wikidotでは[[html]]を使う機能があります。でも、これはhtmlコードを直接挿入するのではなく、別のHTMLページをiframeで呼び出す原理です。

ここで[[html]]の妙な機能があります。それは、[[html]]で作られるiframeは自動的に高さが内部htmlの高さに合わせて調整されることです。だからこの二つを組み合わせれば自動的に高さが調整されるiframeを作るのができるだと思われます。

目的

このコードの開発は財団のInterwikiの高さの調整のためです。つまり、究極的に欲しいのはこのコードを使ったInterwikiを適用することです。

実戦その1

まず、目的しているコードをすべて組み合わせてぶち込む。

コード

[[div class="scpnet-interwiki-wrapper"]]
[[module ListPages range="." limit="1"]]
[[html]]
<style>
.scpnet-interwiki-frame {
    border: none;
}
</style>
<iframe src="http://scpnet.org/interwiki/scp-jp/?lang=jp&page=%%category%%:%%name%%" class="scpnet-interwiki-frame"></iframe>
[[/html]]
[[/module]]
[[/div]]

結果

iframeのリサイジング

by Dr DevanDr Devan 20 Nov 2017 21:53

iframeをリサイジングする実験です。

[[/module]]

定理

モジュールが作動しない。[[html]]の通信と[[module]]の通信が衝突してしまってできないようです。

つまり、モジュールでパラメータを[[html]]の中の<iframe>に転送して使う方法だが、[[html]]がページで(内部のiframeとは違う)iframe1のURLを作り出す時に問題が発生してしまうようです。

実験その2

モジュールを放棄してiframeのリサイジングが作動するか確認

コード

[[div class="scpnet-interwiki-wrapper"]]
[[html]]
<style>
.scpnet-interwiki-frame {
    border: none;
}
</style>
<iframe src="http://scpnet.org/interwiki/scp-jp/?lang=jp&page=_default:devan-s-lab" class="scpnet-interwiki-frame"></iframe>
[[/html]]
[[/div]]

結果

定理

強制的に[[html]]で作られたiframeの高さが150pxに固定されることが見られる。150px以上の高さを持つ内容に関しての実験が必要です。

実験その3

ページを変更して他の部分は同じことで再び実験を行う。

コード

[[div class="scpnet-interwiki-wrapper"]]
[[html]]
<style>
.scpnet-interwiki-frame {
    border: none;
}
</style>
<iframe src="http://scpnet.org/interwiki/scp-jp/?lang=jp&page=_default:scp-173" class="scpnet-interwiki-frame"></iframe>
[[/html]]
[[/div]]

結果

定理

二つ目の実験を同じ結果が導出される。

最終定理

実験その2とその3の結果が示す事実は[[html]]の中に<iframe>を挿入することで高さを自動的に調整するのはできない。おそらく[[html]]が読む内容の高さには<iframe>は含まれていないと思われます。完全に失敗しました。

Unless otherwise stated, the content of this page is licensed under Creative Commons Attribution-ShareAlike 3.0 License