5ちゃんねる ★スマホ版★ ■掲示板に戻る■ 全部 1- 最新50  

■ このスレッドは過去ログ倉庫に格納されています

IE6総合 Part.14

1 :名無し~3.EXE:2007/04/07(土) 15:00:37 ID:z5/0vKsQ
Internet Explorer 6
ttp://www.microsoft.com/japan/windows/ie/ie6/
サポートページ
ttp://support.microsoft.com/ph/2073/

▼━ 質問者の方へ ━━━━━━━━━━━━━━━━━━━━━━
・ 使用環境(OS、IEのサービスパック等)を詳しく書きましょう。
・ トラブルの内容は具体的に書きましょう。
・ エラーメッセージは省略せず正確に書きましょう。
・ 下のお役立ちサイト、よくある質問集に目を通しましょう。

○お役立ちサイト
Internet Explorer トラブル
ttp://homepage2.nifty.com/winfaq/c/ietrouble.html
Internet Explorer 使用法ヒント
ttp://homepage2.nifty.com/winfaq/c/ietips.html
Internet Explorer のショートカットキー
ttp://www.atmarkit.co.jp/fwin2k/win2ktips/093ie_shortcut/093ie_shortcut.html
Windows XP スマートチューニング
ttp://pcweb.mycom.co.jp/column/winxp/
@IT:Windows TIPS INDEX
ttp://www.atmarkit.co.jp/fwin2k/win2ktips/index/
ttp://www.atmarkit.co.jp/fwin2k/win2ktips/index/win2ktipsindex.html
ITmedia エンタープライズ Windows Tips
ttp://www.itmedia.co.jp/help/tips/windows/
ttp://www.itmedia.co.jp/help/tips/windows/ie.html

困った時のGoogle検索 ttp://www.google.co.jp/

559 :名無し~3.EXE:2007/08/07(火) 11:54:49 ID:baaR9pRV
はまちちゃんのクラッシュバグを、自分が解析した結果は以下の通りです。

IE 6/7 は、table 要素内に (tbody | tr) 要素がコードに存在しない場合、
自動的に tbody 要素を補います。しかし、この様にフォーム要素が
隣接している場合、フォーム要素の後の不正な位置に tbody 要素を補い、
その副産物として不正な空要素が作成されます。

サンプル1 : 不正な空要素が table 要素と フォーム要素の間に生成されている。

<head><script>
function funcA(){
var elms = document.getElementsByTagName('*'); var tagStr = '';
for (i=0 ; i < elms.length; i++) {
window.alert(elms[i].tagName+' ['+elms[i].tagName.length+']');
tagStr += elms[i].tagName + '\n';
}
window.alert(tagStr+'this page used '+i+' elements');
}
</script></head><body onload="funcA()"><table><input>

560 :名無し~3.EXE:2007/08/07(火) 11:56:32 ID:baaR9pRV
上のサンプルで実験した結果、TABLE要素の次に不正な空要素が存在する事が
確認できます。従って、次のコード(サンプル 2)でもクラッシュするはずです。

サンプル 2: TABLE要素の次に隣接する不正な空要素でクラッシュする

<style>table *{position:relative}</style><table><input>

なお、クラッシュは、以下の要素の組み合わせでも発生します。
table + (legend | button | input | textarea | select | input)

561 :名無し~3.EXE:2007/08/07(火) 12:22:27 ID:baaR9pRV
実際にサンプル2で使われている例は、隣接セレクタでなく子孫セレクタでしたね。

ちなみに、サンプル 1 の forループの内側末行に

if(elms[i].tagName.length == 0) {
if(window.confirm('clash style setting ?')) { elms[i].style.position = 'relative';}
}

を挿入して、position = 'relative'にする事でもクラッシュが確認できます。

270 KB
★スマホ版★ 掲示板に戻る 全部 前100 次100 最新50

read.cgi ver 05.04.02 2018/11/22 Walang Kapalit ★
FOX ★ DSO(Dynamic Shared Object)