人力検索はてな
モバイル版を表示しています。PC版はこちら
i-mobile

以下のJavaScriptで、function scrollToの部分で
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];
}

●質問者: hopefully
●カテゴリ:就職・転職 ウェブ制作
✍キーワード:BODY IE6 JavaScript エラー オブジェクト
○ 状態 :終了
└ 回答数 : 1/1件

▽最新の回答へ

1 ● llusall
●60ポイント

※何時間か前に「はてなのポイント送信」にて、回答を送信しました。

メールが届いているかと思いますので、詳しくは、そちらをご覧になってください。



「オブジェクトがありません」とのことですが、


<input type="hidden" id="hdn_scroll_to" value="a123" >


のタグは、ブラウザのソースで見たときに存在しますか??

特に「a123」のところはスマティでちゃんとセットされていますか?


提示したサンプルでは、「a123」のIDを持つタグのところを真ん中表示するようになっています。

<a id="a123">

<span id="a123"></span>

などが、ブラウザのソースで見たときに存在していないと駄目ですよ。


つまり、見つからないから「オブジェクトがありません」となるのです。

(「a123」のIDを持つタグが存在しないか、value="a123" が正しくセットされていないため)


以上、ご確認の程、お願いいたします。

◎質問者からの返答

動きました。ですがまだ問題点が。

キャッシュファイルを参照するような

仕組みなのですhiddenはまずいですね。

なので再度質問をアップします。

すいません。

関連質問


●質問をもっと探す●



0.人力検索はてなトップ
8.このページを友達に紹介
9.このページの先頭へ
対応機種一覧
お問い合わせ
ヘルプ/お知らせ
ログイン
無料ユーザー登録
はてなトップ