(最終相対パスtest.htm
:)というサブディレクトリに移動した後、バグを確認できます(最初はあなたが何を求めているのか誤解していました)。グーグルすると、それがバグであるか、少なくともタグの非標準実装であることが確認されます(これは、仕様に従って実装に従わないMicrosoftのさらに別のケースである可能性があります)。test
test/test.htm
<base>
IEは<base>
、定義されたアンカーのタグを尊重します。
<a href="test/test.html">Click me</span>
http://www.site.com/test/test.html
(タグが閉じられてい<base>
ないか、古いバージョンのIEの場合は自己閉じられていない場合)に移動しますが、IE(すべてのバージョン)は、JavaScriptではなく、アンカーのベースタグのみを尊重します。
IEtest/
がURLに追加を追加する理由は、実際には標準に準拠した動作です。<base>
IEはタグを無視しているため、のリンクは、現在のディレクトリ()に関連するファイルでtest/test.html
呼び出されるサブディレクトリがあり、IEが正しく `test / test /test.html'に移動することを示します。test
test.html
test
それを修正する方法に関しては...
- タグを削除しても
<base>
効果はありません。
onclick
を正しいベースURLを返す関数に変更すると機能しますが、これは受け入れられないと述べています。
window.location.href
は文字列であり、関数ではないため、「オーバーライド」は非スターターです。
onclick
絶対URLを使用するように変更することもできます。
- すべての埋め込み属性を削除し、JavaScript(または)
onclick
を介してそれらを割り当てると、長期的にはより効果的であり(コンテンツ/動作の分離)、正しいベースURL(およびおそらく選択する方法)を簡単に添付できるようになります。あなたの特定の状況を知っています)。attachEvent
addEventListener
- jQuery / Dojo / PrototypeなどのDOM操作ライブラリを使用して、任意の
onclick
属性をループし、URLを絶対URLに更新できます。