0

この構造の HTML ページがあります。

<div class="scrollBoxYe">
<table class="grid">
<tr><td class="wd0"><div id="20110701" class="lcday"><div class="lcleft">Fri 01</div><div class="lcmid">The Sacred Heart of Jesus, solemnity&nbsp;-&nbsp;<a href="#" onclick="window.open('http://evangelizo.org/www/popup-saints.php?language=AM&id=10309&fd=0', '', 'width=500,height=450,top=120,left=120,scrollbars=yes')">St. Gal, Bishop (c. 489-553)</a>,&nbsp;&nbsp;<a href="#" onclick="window.open('http://evangelizo.org/www/popup-saints.php?language=AM&id=10480&fd=0', '', 'width=500,height=450,top=120,left=120,scrollbars=yes')">Bl. Antonio Rosmini, Priest, Founder of the Institute of Charity (1797-1855)</a></div><div class="lcright">Jul</div></div></td>
</tr>
<tr><td class="we0"><div id="20110702" class="lcday"><div class="lcleft">Sat 02</div><div class="lcmid">Immaculate Heart of Mary - Memorial&nbsp;-&nbsp;<a href="#" onclick="window.open('http://evangelizo.org/www/popup-saints.php?language=AM&id=9906&fd=0', '', 'width=500,height=450,top=120,left=120,scrollbars=yes')">St. Bernardino Realino, Priest (1530-1616)</a></div><div class="lcright">Jul</div></div></td>
</tr>
<tr><td class="we0"><div id="20110703" class="lcday"><div class="lcleft">Sun 03</div><div class="lcmid"><a href="#" onclick="window.open('http://evangelizo.org/www/popup-saints.php?language=AM&id=9907&fd=0', '', 'width=500,height=450,top=120,left=120,scrollbars=yes')">St. Thomas, Apostle -Feast</a></div><div class="lcright">Jul</div></div></td>
</tr>
</table>
</div>
<script type="text/javascript">
    ScrollCalendar();
</script>

ScrollCalendar 関数は、20110701、20110702、20110703 のような div ID にスクロールする必要があります。

function ScrollCalendar() {
    var d = new Date();
    calrow = d.formatDate("Ymd");
    document.write (calrow);
    var offscroll = window.parent.document.getElementById(calrow).offsetTop;
    document.write (offscroll);
    window.parent.document.getElementById("scrollBoxYe").scrollTop = offscroll;
}

上記の関数では、変数 calrow で取得される div ID が正しく決定されます。ただし、このコードでは、div (scrollBoxYe) をスクロールするための正しいオフセット (offscroll) が得られません。これらは私の質問です:

  1. calrow が正しければ (20110701 と表示されます)。getelementby ID は要素を取得するために calrow を文字列 ID として解釈しますか? 最初に calrow を文字列にする必要がありますか? それを行うための正しい機能は何ですか?
  2. すべてのページ情報が 1 つのドキュメントにある場合、window.parent.document で要素を検索するのは間違っていますか? コードは代わりに document.getElementbyID("scrollBoxYe").scrollTop と言うべきですか?
  3. 変数calrowでscrollBoxYeをスクロールするより良い方法はありますか?

ありがとう。

4

1 に答える 1

1

もっと良いスクロール方法があります: element.scrollIntoView()

http://msdn.microsoft.com/en-us/library/ms536730(v=vs.85).aspx

これは標準の一部ではありませんが、これによれば、すべてのブラウザーでサポートされています。

于 2011-07-07T23:39:39.147 に答える