過去ログ表示


過去ログ 284 を表示

トピック内全 15 記事中の 1 〜 10 番目を表示
[ 最新記事及び返信フォームをトピックトップへ ]
このトピックの全ページ / [0] [1]

FORMのaction先変更について
(#44291) このトピック中1番目の投稿
(環境: WinVista/Firefox3.0)

<FORM name=test action="/x.htm"></FORM>
<script>
x=document.test.action;alert(x);
document.test.action="/y.htm";x=document.test.action;alert(x);
document.test.action="/z.htm";x=document.test.action;alert(x);
</script>


IE7やIE8やSafariやChromeやOperaでは動作しますが
FirefoxとNetscapeでは動作が変なんですけど?

サンプルコードこちらに変更
(#44292) このトピック中2番目の投稿
(環境: WinVista/Firefox3.0)

<body><FORM name=test action="/x.htm"></FORM>
<script>
x=document.test.action; alert(x);
document.test.action="/y.htm"; x=document.test.action; alert(x);
document.test.action="/z.htm"; x=document.test.action; alert(x);
</script>


IE7やIE8やSafariやChromeやOperaでは動作しますが
FirefoxとNetscapeでは動作が変なんですけど? (絶対URLになる)

Re[2]: サンプルコードこちらに変更
(#44294) このトピック中3番目の投稿
(環境: Linux/Firefox3.0)

 これも環境を書いていただかないと、Firefox のバグなのか、環境設定がそもそもおかしいのか ( Web サーバが立ち上がってないとか ) わからないので、もっと詳しい情報をください。

Re[2]: サンプルコードこちらに変更
(#44295) このトピック中4番目の投稿
(環境: Linux/Firefox3.0)

> <body><FORM name=test action="/x.htm"></FORM>
> <script>
> x=document.test.action; alert(x);
> document.test.action="/y.htm"; x=document.test.action; alert(x);
> document.test.action="/z.htm"; x=document.test.action; alert(x);
> </script>
 すいません、このコード根本的におかしいです。というのは HTML4.01 の DTD で、FORM は以下のように定義されています。
  <!ELEMENT FORM - - (%block;|SCRIPT)+ -(FORM) -- interactive form -->
 つまり "(%block;|SCRIPT)+" とあるように、%block の要素か、SCRIPT 要素が FORM 要素内になければなりません。
 このコードでは FORM 要素内が空になっています。正常動作を期待するのは無理があるんじゃないでしょうか?
 他のブラウザで動作するのは、レンダリングエンジンのアーキテクチャが、たまたまこの HTML コードを解釈可能だからじゃないですか?
 HTML 4.01 の DTD に沿った HTML コードを書けば、どんなブラウザでも正常に動くはずですよ。

Re[3]: サンプルコードこちらに変更
(#44296) このトピック中5番目の投稿
(環境: Linux/Firefox3.0)

【追記】
 それと HTML4.01 の仕様書にやはり以下のような記述があります。
> action = uri [CT]
> この属性は、フォーム処理エージェントを指定する。HTTPスキームURI以外の値の場合のユーザエージェントの動作は、定義しない。
 つまり Firefox はこの HTML4.01 の仕様に反しない動作をしていますが。

Re[3]: サンプルコードこちらに変更
(#44320) このトピック中6番目の投稿
(環境: Mac/Firefox3.0)

> FirefoxとNetscapeでは動作が変なんですけど? (絶対URLになる)

絶対URLになる のが変だと考える理由は何でしょうか?

>  すいません、このコード根本的におかしいです。というのは HTML4.01 の DTD で、FORM は以下のように定義されています。

そのサンプルにはどの DTD を使うかの指定はありませんから、HTML 4.01 の DTD にあてはまらないからといって、即おかしいとは言い切れません。

>  HTML 4.01 の DTD に沿った HTML コードを書けば、どんなブラウザでも正常に動くはずですよ。

今問題となっているのは HTML 部分の話ではなくて、script 要素の中の話だと思うんですが。

Re[2]: サンプルコードこちらに変更
(#44323) このトピック中7番目の投稿
(環境: Linux/Firefox3.0)

 コードの
/x.htm
/y.htm
/z.htm
を、それぞれ
file://./x.htm
file://./y.htm
file://./z.htm
にしたらどうなりますか?

Re[3]: サンプルコードこちらに変更
(#44324) このトピック中8番目の投稿
(環境: Linux/Firefox3.0)

【訂正】
>  コードの
> /x.htm
> /y.htm
> /z.htm
> を、それぞれ
絶対 URI にしたらどうなりますか?

Re[4]: サンプルコードこちらに変更
(#44325) このトピック中9番目の投稿
(環境: Linux/Firefox3.0)

 くどいんですが、HTML の仕様書では
> action = uri [CT]
> この属性は、フォーム処理エージェントを指定する。HTTPスキームURI以外の値の場合のユーザエージェントの動作は、定義しない。
とあるので、別に Firefox の動作としてはおかしくないと思いますが。つまり document.test.action に、らじもさんが期待する値が入らなければならない理由はない、ということになりませんか?
 例えば ”action = CDATA" なら UA はらじもさんが期待する動作をしないといけないと思いますが。

 それと話がそれますが、もし HTML の仕様書をまったく無視してレンダリングしていいなら、たとえば
&lt;a&gt;&lt;p&gt;&lt;/a&gt;&lt;/p&gt;
なんて構造の HTML を書いてもかまわないわけですよね。でもこのアンカー要素を UA がアンカー要素として認識しなければならない理由はないですよね?
 例えば極端な例ですが <head><body></head></body> というような構造を持つ HTML の場合、UA はレンダリングしなければならない理由はないですよね?

Re[2]: サンプルコードこちらに変更
(#44326) このトピック中10番目の投稿
(環境: WinXP SP3/Firefox3.0)

1: <html>
2: <head>
3: <meta http-equiv="Content-Type" content="text/html; charset=utf-8">
4: <title>abc</title>
5: </head>
6: <body>
7: <FORM name=test action="/x.htm">
8: </FORM>
9: <script>
10: x=document.test.action; alert(x);
11: document.test.action="/y.htm"; x=document.test.action; alert(x);
12: document.test.action="/z.htm"; x=document.test.action; alert(x);
13: </script>
14: </body>
15: </html>

このファイルを W3C HTML Validation Service でチェックしてもらいました。
(行番号は投稿のために付け加えたものです。)


Line 9, Column 7: required attribute "TYPE" not specified.

The attribute given above is required for an element that you've used, but you have omitted it. For instance, in most HTML and XHTML document types the "type" attribute is required on the "script" element and the "alt" attribute is required for the "img" element.

Typical values for type are type="text/css" for <style> and type="text/javascript" for <script>.


だそうです。

なお、この html ファイルを Firefox 3.0.1 と IE 7 で開くと、
いずれも <form> </form> の部分を JavsScript と認識して動作しました


[ 次のトピック内容10件 ]
このトピックの全ページ / [0] [1]

返信不可


- Child Tree -