2009-06-01 12 views
6

アンカーを使用してページを特定の位置に「移動」させるjavascript関数があります。この機能はwindow.location.href = "#" + hashNameと同じです。これはFFでは動作しますが、IEでは動作しません。私はWindows XPの下でIE7を使ってこのコードをテストしました。 私はusing window.location.hrefwindow.location.hashwindow.location.replaceなどこれらの方法を試しましたが、documentオブジェクトを使用しています。 誰もこの問題に対処する方法を知っていますか?IE7のwindow.location.hash問題

+0

に出くわした問題もあるあなたは、 'ドキュメントオブジェクトを使用して' で何を意味するのですか?答えに示唆されているように 'window.location'を使うべきです - ' document.location'はGecko固有のものです! – Christoph

+0

私はそれらの両方を使用しました - 彼らは動作しません –

+0

ウラジミール、IE7/XPで私のために働く... – James

答えて

6

IEや他のほとんどのブラウザでは、(anchor.focusでアンカーにスクロールします)、またはelement.scrollIntoView(真)とidを持つ任意の要素に

+0

ありがとう、それは動作します。 –

+0

うまくいった。 +1 –

2

ちょうどlocation.hashの変更を試みましたか?

window.location.hash = "#" + hashName; 
+1

私はこれを試しても、それも動作しません –

+0

これに慣れていません。しかし、よく見えます。 *テストに行く... * –

+0

はFirefox 3で動作します –

4

私はVistaでIE7でこれをテストしたjusted 、多分問題はXPの下でIE7でexsists?

window.location.hash = hashName; 

これは本当にケネベックが示唆するように、我々はのscrollIntoViewを使用することができます動作しない場合:これはIE7、ChromeとFirefoxで私のために正常に動作しますので。このような

function scrollToAnchor(anchorName){ 
    //set the hash so people can bookmark 
    window.location.hash = anchorName; 
    //scroll the anchor into view 
    document.getElementsByName(anchorName)[0].scrollIntoView(true); 
} 

用途:

<script type='text/javascript'>scrollIToAnchor('foo');</script> 
<a name='foo'></a> 
<p>I will be scrolled into view</p>