3

テーブルからエントリが読み取られ、phpが各行が表示されるdivを生成するページがあります。divの名前とIDは、レコード番号に基づいて一意の文字列に設定されます。例えば:

ページが読み込まれると、レコードの一意のアンカー文字列が渡され、次の形式でスクロールします:href ='showpost.php#g50'

ページが読み込まれると、アンカー付きのURLが正しく表示されますが、スクロールしません。

ただし、ブラウザのアドレスバーにカーソルを置き、<Enter>ページを押すと、レコードまで正しくスクロールします。奇妙なことに、動作<F5><Ctrl-R>ません(Firefox16)。

動的に作成されるページはそれと関係があると思います。何が起こっているのか考えてみませんか?

4

2 に答える 2

2

単純な JavaScript 呼び出しを使用して、アンカーまでスクロールすることができます。ページのどこからでも Javascript コードを呼び出すことができるので、安全のために、PHP がすべてのアンカーを生成した後にページの最後に配置することができます。

<?php 
    // php generation code here
?>
<script type="text/javascript">
    var hashSplit = location.href.split('#');
    var curHash= hashSplit[1];
    window.location.hash = curHash;
</script>

または、ページのアンカーが php 経由でどうなるかをすでに知っている場合は、さらに簡単に行うことができます。

<?php
    $anchor = "home";
?>
<script type="text/javascript">
    window.location.hash = "<?= $anchor; ?>";
</script>
于 2012-11-21T01:27:00.647 に答える