- ベストアンサー
prototipの設定
- prototipの設定に関して質問させていただきます。
- 記述したprototipのコードが正しく動作しない場合の解決方法を教えてください。
- 詳細なエラーの内容やブラウザのコンソールに表示されているエラーメッセージを教えていただけると解決に役立つかもしれません。
- みんなの回答 (5)
- 専門家の回答
質問者が選んだベストアンサー
次のブラウザでそのまま動くのを確認できています。 ie7.0.6000 Foxfire2.0.0.12 もう一度 <script src="jslib/prototype.js" type="text/javascript"></script> で使われているprototype.jsが、prototype-1.6.0.2.js以降のバージョンであるかを調べてみてください。 Windowの再起動後もなおエラーが出るなら、ブラウザの変更も必要かも知れません。 また >>> 動作の確認できました。 と >>> 今度は、ページを開く時にStack overflow at line: 0というメッセージがが出てきてしまう との関連がいまいち分かりません。 エラーメッセージ直後も動き続けますか。 ページを更新したとき何度かだけ動作していますか。 もう2度と動いていませんか。
その他の回答 (4)
- auty
- ベストアンサー率58% (284/486)
>>> それで今度は、ページを開く時にStack overflow at line: 0 というメッセージがが出てきてしまうのです この症状は始めてみるので、ネットで探したところJavaScriptの書き方に問題があるようです。長ければ関連部分だけでも提示していただけると解決が早くなるでしょう。 とりあえず、原因として ・ 関数(メソッド)が自分自身を呼び出すことになっている。 ・ 関数(メソッド)の利用のみで、定義がない。 等が、考えられると思います。
補足
ソースを提示します。 <html> <head> <meta http-equiv="Content-Type" content="text/html; charset=shift_jis"> <title>スクロールしても動かないボックスサンプル</title> <script src="jslib/prototype.js" type="text/javascript"></script> <script src="jslib/effects.js" type="text/javascript"></script> <script src="jslib/prototip.js" type="text/javascript"></script> <link rel="stylesheet" type="text/css" href="css/prototip.css"> <script type="text/javascript"> function init() { new Tip('test', 'ToolTip simple', {title: 'title'}); } Event.observe(window, 'load', init, false); </script> </head> <body> 000000000000000 11111111111111111 <hr/> 000000000000000 11111111111111111 <hr/> aaaaaaaaaaccccccccccccccccc <a href="" id="test">test</a> xxxxxxxxxxxxxxxx </body> </html> 以上になっています。
- auty
- ベストアンサー率58% (284/486)
とりあえず動作を確認しました。 ・ prototype-1.6.0.2.jsを使ってください。 ・ Event.observe(window, 'load', init, false);を移動します。 サンプルを示します。 --------------------------------------------------------------------------- <html> <head> <meta http-equiv="Content-Type" content="text/html; charset=shift_jis"> <title>スクロールしても動かないボックスサンプル</title> <script src="js/prototype-1.6.0.2.js" type="text/javascript"></script> <script src="js/effects.js" type="text/javascript"></script> <script src="js/prototip.js" type="text/javascript"></script> <link rel="stylesheet" type="text/css" href="css/prototip.css"> <script type="text/javascript"> function init() { new Tip('test', 'ToolTip simple', {title: 'title'}); } Event.observe(window, 'load', init, false); </script> </head> <body> 000000000000000 11111111111111111 <hr/> 000000000000000 11111111111111111 <hr/> aaaaaaaaaaccccccccccccccccc <a href="" id="test">test</a> xxxxxxxxxxxxxxxx </body> </html>
お礼
サンプルありがとうございました。 丁寧に解説していただきとても助かります。 動作の確認できました。 それで今度は、ページを開く時にStack overflow at line: 0 というメッセージがが出てきてしまうのですが、これはどの様に回避すればよいでしょうか?質問ばかりで申し訳ありませんがもう少々お付き合い下さい。
- auty
- ベストアンサー率58% (284/486)
使ったことがなくて動きを確認していないので、断片的な指摘となり申し訳ありませんが、次に気がついたのは、 href="http://yourdomain/prototip.css" は大丈夫ですか。(準備できていますか?) prototip.jsと同じディレクトリに保存して、 href="js/prototip.css" または cssディレクトリに保存して、 href="css/prototip.css" のほうが確実だと思います。 また余分な心配かも知れませんが、のホームページには Prototype 1.6.0.2 を含めると書いてありました。
- auty
- ベストアンサー率58% (284/486)
function init() { の 最後の閉じる括弧が抜けているようです。 ----------------------------------------------------------- function init() { new Tip('test', 'ToolTip simple', {title: 'title'}); Event.observe(window, 'load', init, false); } </script>
お礼
回答ありがとうございます。 う、初歩的ミス・・・・ function init() { new Tip('test', 'ToolTip simple', {title: 'title'}); Event.observe(window, 'load', init, false); } </script> 以上のように変換しました。 変換したところ 「catch ステートメントでは適用されますが、throwステートメントでは適用されません」というエラーが出てきていまだ動かずです。
お礼
問題解決いたしました。prototypeのバージョンでかなり問題があったみたいです。その部分を修正したら問題が解決しました。 ありがとうございました。
補足
ページを開いて、ウインドウを開こうと、オンマウスをした時点で Stack overflow at line: 0というエラーが出ます。 その後は、期待したとおりの動きが出来ていて Stack overflow at line: 0は出てきません。なので 開く時(というか初めて処理を動かそうとする時)動作の確認が出来たというのはそういうことです。 >>prototype-1.6.0.2.js以降のバージョンであるかを調べてみてください。 確認しました、バージョンの問題は無いです。 ただ ブラウザはie6.0です。 とある理由で、6、7両方使えるようにする必要があります。 以上補足です。