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

以下のURLで
http://q.hatena.ne.jp/1156246160
回答されているjavascriptでURLがhttp://aaaa.bb.cc.co.jp/test/test_id=123_321&scroll_to=a123
の場合に
文字:7
エラー:オブジェクトがありません
コード:0
となってしまいます。どうしたらいいでしょうか?

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

▽最新の回答へ

1 ● llusall
●35ポイント

http://aaaa.bb.cc.co.jp/test/?test_id=123_321&scroll_to=a123

または、

http://aaaa.bb.cc.co.jp/test/hoge.html?test_id=123_321&scroll_to=a123

のようになるのではないでしょうか?

◎質問者からの返答

ならないんですよ。smartyなので。

すいません。


2 ● llusall
●35ポイント

毎度、力が及ばず済みません。

URLに「?」が無いとなると、JavaScript での引数の取得は難しいようですね。


サーバ側の処理をつかってらっしゃるとのことですので、

次の様にご提案します。


スマーティとかPHPは守備範囲外の為、詳細は判らなくてすみませんが、

赤字に該当する箇所をスマーティ(サーバ側)でセットしてあげれば良いかと思います。


1.前ページからのGETによる?引数をスマーティで取得

2.当ページの赤字箇所にスマーティで文字をセット


以上、でどうでしょうか?


<html>

<body onload="ajustCenter();changeColor();">

    <br><br><br><br><br><br><br><br><br><br><br><br><br><br>

    <br><br><br><br><br><br><br><br><br><br><br><br><br><br>

    <br><br><br><br><br><br><br><br><br><br><br><br><br><br>

    <br><br><br><br><br><br><br><br><br><br><br><br><br><br>

    <br><br><br><br><br><br><br><br><br><br><br><br><br><br>

    <br><br><br><br><br><br><br><br><br><br><br><br><br><br>

    <table>

        <tr><td id=123><a id="a123">1</td><td id=123>2</td></tr>

        <tr><td id=231><a id="a231">3</td><td id=231>4</td></tr>

        <tr><td id=321><a id="a321">5</td><td id=321>6</td></tr>

    </table>

    <br><br><br><br><br><br><br><br><br><br><br><br><br><br>

    <br><br><br><br><br><br><br><br><br><br><br><br><br><br>

    <br><br><br><br><br><br><br><br><br><br><br><br><br><br>

    <br><br><br><br><br><br><br><br><br><br><br><br><br><br>

    <br><br><br><br><br><br><br><br><br><br><br><br><br><br>

    <br><br><br><br><br><br><br><br><br><br><br><br><br><br>

    <input type="hidden" id="hdn_test_id"   value="123_321" >

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

</body>

</html>

<script type="text/JavaScript">

<!--

// セルの色を変える関数

function changeColor(){

//  var oSearch = new CLocationSearch(location.search);

//  var id = oSearch.item('test_id');

////var id;

////var ls = location.search;

////if (ls.match(/\/test_id\/([\d_]+)/)){

////    id = RegExp.$1;

////} else if (ls.match(/[&|\?]test_id=([\d_]+)/)){

////    id = RegExp.$1;

////}

    var elem = document.getElementById("hdn_test_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 oSearch = new CLocationSearch(location.search);

//  var id = oSearch.item('scroll_to');

    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);

    document.body.scrollTop = offsets[1] - (document.body.clientHeight / 2);

}

// 参考 prototype.js

//       http://www.imgsrc.co.jp/~kuriyama/prototype/prototype.js.htm...

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];

}

//-->

</script>

関連質問


●質問をもっと探す●



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