var element = document.getElementById(id);
がオブジェクトがありませんとエラーなります。
どう修正したらいいかわかりますか?
ブラウザはIE6です。
<script type="text/JavaScript">
<!--
// セルの色を変える関数
function changeColor(){
var elem = document.getElementById("hdn_plan_id");
var id = elem.value;
if(id == "")return;
var aryId = id.split("_");
var tagname = "TD";
for (var i=0; i < document.getElementsByTagName(tagname).length; i++) {
var elem = document.getElementsByTagName(tagname)[i];
for (var j=0; j < aryId.length; j++) {
if(elem.id==aryId[j]){
elem.style.backgroundColor="#D7FDFF";
}
}
}
}
// センター位置に調整する関数
function ajustCenter(){
var elem = document.getElementById("hdn_scroll_to");
var id = elem.value;
if(id == "")return;
scrollTo(id);
}
function scrollTo(id) {
var element = document.getElementById(id);
var offsets = cumulativeOffset(element);
alert(offsets[1]);
document.body.scrollTop = offsets[1] - (document.body.clientHeight / 2);
}
function cumulativeOffset(element) {
var valueT = 0, valueL = 0;
do {
valueT += element.offsetTop || 0;
valueL += element.offsetLeft || 0;
element = element.offsetParent;
} while (element);
return [valueL, valueT];
}
※何時間か前に「はてなのポイント送信」にて、回答を送信しました。
メールが届いているかと思いますので、詳しくは、そちらをご覧になってください。
「オブジェクトがありません」とのことですが、
<input type="hidden" id="hdn_scroll_to" value="a123" >
のタグは、ブラウザのソースで見たときに存在しますか??
特に「a123」のところはスマティでちゃんとセットされていますか?
提示したサンプルでは、「a123」のIDを持つタグのところを真ん中表示するようになっています。
<a id="a123">
や
<span id="a123"></span>
などが、ブラウザのソースで見たときに存在していないと駄目ですよ。
つまり、見つからないから「オブジェクトがありません」となるのです。
(「a123」のIDを持つタグが存在しないか、value="a123" が正しくセットされていないため)
以上、ご確認の程、お願いいたします。
動きました。ですがまだ問題点が。
キャッシュファイルを参照するような
仕組みなのですhiddenはまずいですね。
なので再度質問をアップします。
すいません。