baseタグと各種ブラウザについての質問です。
あるブラウザで各種HTMLタグにおけるhref属性の様な文字列を送信した場合で、かつ、送信先ページに値部分と同じURLを持つbaseタグが記述されている場合、baseタグが認識されないといった問題に直面しています。
具体的には次のページのような感じです。
http://true-web.org/test/test_base.php
Chrome、Safariなどで1番を送信した場合、baseタグが認識されず、相対パスで指定した画像が表示されなくなります。
(IEとFirefoxは問題なし)
※ソース http://true-web.org/test/test_base.txt
それで、質問なのですが、この事象はブラウザ側のバグなのでしょうか?
もしバグでないとしたらBaseタグは使わないほうがいいのでしょうか?
考え方を教えてください。
よろしくお願いします。
ブラウザのバージョン
IE8.0
Firefox5.0.1
Safari5.1
Chrome16.0.912.63 m
OS
Windows XP home sp3
No.1ベストアンサー
- 回答日時:
何度か送信させていただきました。
不思議な現象ですね。
<base href="http://true-web.org/index.html" />
適当なファイル名まで付けてみるとどうでしょうか。(文法上はスラッシュ止まりでも問題ありません。)
>それで、質問なのですが、この事象はブラウザ側のバグなのでしょうか?
現象だけで判断していますが、おそらくWebkitのバグではないかと思います。
もしそうなら、Phonegap、iCabや、
Sleipnir、LunascapeなどのレンダリングエンジンをWebkitにした場合、IEプラグインのChrome Frameなどでも、同じ現象になるかもしれません。
https://bugs.webkit.org/
>もしバグでないとしたらBaseタグは使わないほうがいいのでしょうか?
バグ、バグでないに関わらず、baseタグ自体が非推奨と言われています。
<img src="test.jpg">としたときに、このタグ(タグ属性)だけでsrcがどこなのか、判断しづらいから、などと言われてます。
私はその意見には賛成ですが、使い方次第で良くも悪くもなると思いますけどね。
baseタグのように、href一カ所の変更ですべてのタグに修正がかかる、ということはできませんから。
この回答への補足
すみません、肝心なことを書き忘れてました。
Baseタグに適当なファイル名をくっつけた場合。
http://true-web.org/test/test_base2.php
これ、問題なかったです。
既存の際とはこの路線で回避したいと思います。
ありがとうございました。
ありがとうございます。
Lunascape試してみました。
レンダリングエンジンをWebkitにした場合でも再現しませんでした・・・
いずれにせよ"baseタグ自体が非推奨と言われて"というのはしりませんでした。
今後は無用なトラブルを避ける意味でも使用を控えようと思いました。
(動的なサイト作るとき便利なんですけどねぇw)
No.5
- 回答日時:
ブラウザのバグの気がします。
・DOCTYPEを変えてみた
・baseタグをheadの先頭に置いてみた
・サイトルートじゃ無くて一つ下の階層に全部ずらしてみた
・postでなくgetにしてみた
・念のためにPHPでない言語を使ってみた
どうやってもだめですね。
サーバーから送られてくるHTMLは同一なのに、直前に送信したデータに依存して動作が変わるというのはどう考えても変です。
いろいろお試しいただいてありがとうございます。
やはりブラウザのバグっぽいですね。改めて納得です。
これ以上の究明は難しいとおもいますのでこれで終了とします。
みなさんありがとうございました。
No.4
- 回答日時:
いまだに、事情がよくつかめていないのですが・・
とりあえず、そのPHPのactionのあて先を
http://hpcgi1.nifty.com/Iruka/ENV_FORM.cgi
に変更して送信してみたり
あるいは、このCGIのフォームに値を記入して送信してみてください。
何かつかめるかも・・
No.3
- 回答日時:
PHPが受け取った標準入力と環境変数をすべて羅列するコードを書き加えてください。
たとえば、そのHTMLの送信先を前出のCGIに変更したときみたいに・・
http://hpcgi1.nifty.com/Iruka/ENV_FORM.cgi/tekit …
とか・・・
>"baseタグがブラウザ側の処理に依存する仕様"というのは気になります。
これは、仕様書確認
12.4 パス情報: BASE要素 ( http://www.asahi-net.or.jp/%7Esd5a-ucd/rec-html4 … )
度々お世話になります。
以下に作成しました。
phpinfo()を若干整形して出力してます。
http://true-web.org/test/test_base3.php
ソース http://true-web.org/test/test_base3.txt
Apache の環境変数は上のほうの"Apache Environment"でみれます。
標準入力等は最下段の"PHP Variables"で見れます。
よろしくお願いします。
仕様については、ブラウザ側の処理に依存する仕様といいますか、
ブラウザがRFCの仕様にちゃんと従ってるかどうかということでしょうか。
ありがとうございました。
No.2
- 回答日時:
送信先のプログラムでの処理がどうなっているのかがわからないのでなんとも・・
baseは、あくまでブラウザ側の処理に依存する仕様なので、ブラウザがその受け取った値をどのように処理しているかがわからないと何とも言えない気がします。
Enviroment Variable and FORM,COOKIE ( http://hpcgi1.nifty.com/Iruka/ENV_FORM.cgi )
のような簡単なスクリプトでも作成して、どのような形でデータが送られてきているか確認してからの対応になると思います。
ありがとうございます。
意図とあってるかわからないですが、
http://true-web.org/test/test_base.php
に
print_r($_POST);
を追記しました。
※ソース http://true-web.org/test/test_base.txt
送信元と送信先は同じPHPで作成されたページで、もともと送信された(されてきた)データに対してはなにもしてません。またbaseタグ部分を動的に出力しているわけではありません。とはいえ、"baseタグがブラウザ側の処理に依存する仕様"というのは気になります。
その辺を解説してるページがあるとありがたいです!
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
関連するカテゴリからQ&Aを探す
おすすめ情報
- ・漫画をレンタルでお得に読める!
- ・14歳の自分に衝撃の事実を告げてください
- ・架空の映画のネタバレレビュー
- ・「お昼の放送」の思い出
- ・昨日見た夢を教えて下さい
- ・【お題】絵本のタイトル
- ・【大喜利】世界最古のコンビニについて知ってる事を教えてください【投稿~10/10(木)】
- ・メモのコツを教えてください!
- ・CDの保有枚数を教えてください
- ・ホテルを選ぶとき、これだけは譲れない条件TOP3は?
- ・家・車以外で、人生で一番奮発した買い物
- ・人生最悪の忘れ物
- ・【コナン30周年】嘘でしょ!?と思った○○周年を教えて【ハルヒ20周年】
- ・ハマっている「お菓子」を教えて!
- ・最近、いつ泣きましたか?
- ・夏が終わったと感じる瞬間って、どんな時?
- ・10秒目をつむったら…
- ・人生のプチ美学を教えてください!!
- ・あなたの習慣について教えてください!!
- ・牛、豚、鶏、どれか一つ食べられなくなるとしたら?
- ・都道府県穴埋めゲーム
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
type="hidden"を使って時刻を送信
-
1アクションでPOST・GET、両方...
-
FlashMXについて
-
<a>と<input>の形状・高さ・垂...
-
■mailtoで文字化けする
-
【ホームページ、Webページ開発...
-
送信フォームを2つ用意する方法
-
CGI動作後に元のページに戻る方法
-
HTMLのフォームタグの送信順に...
-
JavaScriptを使用しないで、自...
-
送信ボタン押下時に値が未入力...
-
URL パラメータを使ってフォー...
-
画像をボタンのようにフォーカ...
-
C#でHTML操作
-
HPビルダー リンクのつけかた
-
HTMLのoptionタグ部分に画像を...
-
親ページからインラインフレー...
-
JavaScript 超初心者です。 Doc...
-
VB6.0でコントロール配列の配列...
-
テキストボックスの初期値について
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
1アクションでPOST・GET、両方...
-
複数のフォームを一括で送信す...
-
submitをボタン以外にするには
-
フォーム要素以外にもname属性...
-
<a href=**?***=***>をGET方式で
-
長文のmailtoの使い方
-
type="hidden"を使って時刻を送信
-
submitの処理の後別の画面を表...
-
リンクをクリックした時にform...
-
mailtoについて
-
GETをPOSTに変更したところ 送...
-
URL パラメータを使ってフォー...
-
同じnameのhiddenで別々の内容...
-
Form送信ボタンのダブルクリッ...
-
■mailtoで文字化けする
-
送信ボタン押下時に値が未入力...
-
お問い合わせフォームの送信後...
-
mailtoでバイナリーファイルを添付
-
inputtype=hiddenとは?
-
input type="search"の「×」
おすすめ情報