メニュー

会員登録

 ユーザ登録

検索


Google

カレンダー

20109
      1 2 3 4
5 6 7 8 9 10 11
12 13 14 15 16 17 18
19 20 21 22 23 24 25
26 27 28 29 30    


InternetExplorer 7 は全て絶対参照にしました

Hatena::Bookmark del.icio.us Livedoor Clip Yahoo Bookmark POOKMARK. Airlines nifty Clip Buzzurl

Internet Explorer 7 でサイトを見た場合baseタグの解釈が違うため大きくズレが発生してしまうので全て絶対参照に書き換えました。

詳細は以下。

以前から確認をして対策方法を考えていたのですが、

Microsoft Internet Explorer 7: Beta 2 リリース ノートを見る限りではHEADタグ内に書かれている限りきちんと動作するようです。
BASE 要素 -- Internet Explorer 7 では、HTML 4.01 標準に記載されているとおりに、BASE 要素の規則を厳密に実施します。BASE タグをドキュメントの HEAD タグの外側に配置できなくなりました。この標準では、BASE 要素はドキュメントの HEAD 内で、外部ソースへの参照を行うすべての要素の前に配置する必要があることが指定されています。

しかし、釣堀.netで設置している<base href="~" />には反応せず相対参照しています。このため下の階層のリンクが全てズレており、IE7のみ404のページにしか行けなくなるという事態に陥っていました。

どうせメジャーになるであろうブラウザですし対策を・・と試行錯誤考えたのですが、結局PHPで相対参照を全て絶対参照にしようって事で落ち着きました。


if($ua == "IE7"){
  for(
$i=0;$i<count($new_line);$i++){
    
$new_line[$i] = ereg_replace('src="/', 'src=".', $new_line[$i]);
    
$new_line[$i] = ereg_replace('src="./', 'src="' WEB_SITE_URL, $new_line[$i]);
    
$new_line[$i] = ereg_replace('href="/', 'href="./', $new_line[$i]);
    
$new_line[$i] = ereg_replace('href="./', 'href="' WEB_SITE_URL,    $new_line[$i]);
    
$printer .= $new_line[$i];
  }
}
echo 
$printer;

WEB_SITE_URLはhttp:~から始まるサイトのURLです。とりあえずIEでも見れるようにと急いで作ったものなのでボロがあるかもしれませんが・・。今後は他のサイトを参考に色々と対策を練ってみようと考えています。

  • 投稿者:慈円
  • 投稿日時:2007/03/18 10:53:53
  • コメント(0)
  • トラックバック(0)
  • プログラム


この記事へのコメント

この記事にコメントを書く


名前:  メール:

トラックバック



本文中でこの記事のアドレスを引用(リンク)してください。 引用がない場合はスパムとして削除し以降の全トラックバックを拒否します

ブログの人気ページ