2006年12月21日

既出ネタかどうか分からないけど、iframe name tagsでググっても情報でて無いので書いておきます。
特定のタグやname属性をHTML中に記載するとIEのCtl-Fでのページ内検索やプリント機能が使えなくなります。

詳細は以下の通り。

iframeタグを使用したHTML内で、name属性が使えるタグのname属性にtagsを指定すると、IE6ではページ内検索を実行したときとページプリントを行ったとき(プレビューだけでも化)にエラーダイアログが表示されてしまい、検索や印刷が出来ません。
IE7で直ってるかと思いきや検索だけは出来ません。
エラーコードがIE6とIE7で違うため、バッファオーバーフロー的な何かがIEの中で起きていると思われます。

再現する最小ソースは

<iframe></iframe><img name="tags">
これだけで再現しました。
サンプルページは下記の通り。
imgタグ
inputタグ
aタグ

なんでこんなんで駄目になるのかは分かりませんが、マイクロソフトはtagを用いたWeb2.0的な物がお嫌いなんでしょうか。
DOM操作とかでiframeを構築して行ったらどうなるかは試していません。
あと、javascript無効にするとどういう挙動になるとかも見てません。


どうにかしてIEのみでしか見れないページを作れば、印刷不可能なページの作成も物理的に可能そうです。

追記:12/22
id:holidaysの人が詳細を追いかけてくれました。
holidays-l開発ブログ - IEで印刷できないページ

としてみたところ、document.all.tagsというnativeな関数を呼び出していました。(document.all.tags = document.getElementsByTagName?)
nameで上書き出来る場所に重要なのを置いていたと言う事なんすかね。
iframeがあっても無くても関係ないみたいです。
iframeを無くすと印刷できませんが検索は出来る様になります。で、iframeを入れると何故か検索が出来なくなると。
やっぱり不思議です。
name使わないでidというのも諸事情で却下す。

Posted by Yappo at 2006年12月21日 23:09 | TrackBack | tech
Comments

tagsがMSDHTMLで既に存在するプロパティだからじゃないでしょうか。

再現ソースに対し、同様に「all」でname属性を与えると、同じようなエラーがIE6で再現できました。

Posted by: 山本ゆうご at 2006年12月22日 12:58

結構前からこの「仕様」に悩まされていました。そして、IE7では直っているはずです。

Posted by: せきむら at 2006年12月26日 14:11
Post a comment









Remember personal info?






コメントを投稿する前に↓の場所にnospamと入力してください。