2011-12-29 23 views
1

フォームは入れ子にすることはできませんので、たとえば、以下のHTMLに...ブラウザが無視する無効なHTMLを見つけ出すにはどうすればよいですか?

<form name="outerform"> 
    <input type="text" name="outer1"/> 
    <input type="text" name="outer2"/> 

    <div> 
    <form name="innerform" method="post" action="#"> 
     <input type="text" name="inner1"/> 
    </form> 
    </div> 
</form> 

Firefoxは、単に、innerform<form>タグを捨てますが。

一部のレガシーコードにパッチを適用しながら、私はこれに走りました。誰かがコンテンツのほぼ全部をカバーする<form>タグを配置していました。よりローカル化された<form>を自分自身で追加したとき、Firefoxは内側のタグを取り除き、私のサブミットは外側のフォームになりました。送信URLを作成するためにjQueryの処理を行っていたので、私はそれが私のエラーだと思っていました。私はFirebugのHTMLタブでレンダリングされたHTMLを見た後で問題を認識しました。

ブラウザの場合、またはFirebugのは、私はすぐにそれを選び出しただろう「無視HTML」、またはそのようないくつかの方法のタブを持っていました。私は単にビュー・ソースを行い、次の理由でW3CのWebベースの検証サービスに貼り付けることができません。

  1. セキュリティ上の理由から、私は上だ開発コンピュータは、公共のインターネットに接続されていません。
  2. FirebugのHTMLタブにはレンダリングされたHTMLが表示されるため、無効なHTMLタグは既に削除されています。

最後に、エディタ(Eclipse)は通常このようなバグを検出します。しかし、多くのインクルードファイルとTilesフレームワークを使用するため、一度に最終HTMLページの断片だけが表示されます。それは無効だ場合

+1

Firefoxのview-sourceにレンダリングされたHTMLは表示されません。あなたのテストケースのようなものを置くと、 '

'タグが表示されます... –

+0

ありがとう、私はその問題を修正しました。私はFirebugのHTMLタブであり、ビューソースではありません。 –

答えて

1

私は解決策を見つけました。ボリス・ズバースキーのコメントに感謝します。 view-sourceにはダウンロードしたHTMLが表示されますが、FirebugのDOMインスペクタにはレンダリングされたHTMLが表示されます。ソリューション:

  1. は、ビュー・ソースを実行して、ファイル(ファイル1)を保存
  2. オープンFirebugののDOMインスペクタ、トップレベルの要素<html>、コピーHTMLを右クリックし、(ファイル2)をファイルに保存
  3. 差分ツールを使用して2つのファイルを比較します。グラフィカルな差分ツールでは、ファイル2はブラウザがHTMLを無視/削除したギャップを表示します。

HTMLを2つのファイルに再フォーマットすると、より簡単になる場合があります。

0

は、ブラウザがどう反応するかを知る方法はありません。したがって、an HTML Validatorに壊れていると表示されるものは、おそらく修正されるはずです。

あなたはHTMLをオフラインで検証することができます。たとえば、オフラインでHTMLを検証するために使用するplugin for Codaがあります。

0

wgetツールを使用している場合、サーバーが生成するHTMLの正確なコピーを取得することは非常に現実的です。 View Source機能でも、ダウンロードされたものを正確に表示するとは限りません(おそらく今のところですが、サーバーが正しく機能していないときに「有効な」コードを見ているうちに何時間も費やされました)。

wget SourceForge.netのmingwツールからMS-Windowsのために。 Linuxでは、リポジトリ内で検索するだけでなく、すでにインストールされている可能性があります。

関連する問題