• 締切済み

WIn2000+IE6でローカルで実行したJavaScriptが機能しない。

みなさんこんにちは。 Lucieと申します。 Windows2000 SP2 IE6.0 であるCookieの有効/無効を確認し、Cookieが有効ならサイト上のコンテンツページへ、Cookieが無効ならリモートのエラーページへジャンプするものを作成しました。 するとこのJavaScriptをローカル(IEのURL欄でD:\index.html)のような記述で実行した場合、なぜかサイト上のエラーページが表示されてしまいます。 おなじJavaScriptをサイトにUPし、リモート(IEのURL欄でhttp://www.hoge.or.jp/~.html)で確認すると、Cookieの有効が確認でき、正しいページにジャンプします。 もちろんIEのインターネットオプションの[プライバシー]タブおよび[セキュリティ]タブでのJavaScript(アクティブスクリプト)とCookieの設定は正しく行っております。 ローカルで実行した場合に限り、Cookieが有効になっているにもかかわらず、エラーページが表示されて原因が突き止められず困っております。 以上のような現象に遭遇された方、または改善方法をご存知の方いらっしゃいましたらお教えください。 よろしくお願いします。

みんなの回答

  • BLUEPIXY
  • ベストアンサー率50% (3003/5914)
回答No.3

>いかがなものでしょうか? いかがなものと言われても、試してみないことには、何とも言えないと思います。 #2のアドバイスは、推測で言っているに過ぎませんし、質問者が考えるクッキーのやりとりの動作というのも、推測だと思います。 なので、実際に試してみないことには、 どう? どう? と言い合ってみてもしょうがないのではないでしょうか? 私が知る所のクッキーの動作は、概ねこんな感じです。 あるページをサーバーで表示しようとする時、端末側からそのサイトで登録されているクッキーがあれば送られます。 なので、この時点では、そのサイトの前回の結果が残っていないのであれば、そのサイトでのクッキーはありません。ローカルで作ったクッキーは、サーバーには送られませんが、?のあとに付けて送られます。 サイト側で、?のあとのデータを解析してクッキーを発行するとして、これが、ページが既に表示されていたら、端末側には届きません。クッキー情報は、まず、ページのヘッダー情報として送られるからです。 なので、例えば、 サーバー側で、シリアル番号を受け取りましたみたいな、メッセージを表示して、端末側でOKボタンを押す。とかして、もう一度、やりとりする必要があります。 これは、 >別々のページで行えば?ということでしょうか? 別々のページでなく、同じページでも良いです。 というような推測なのですが、 ここで問題となるのは、サイト側のクッキーの発行タイミングです。 ページの表示に先立ち(つまりヘッダ情報が)送られているならいいのですが、間に合っていないのかもしれません。 他のPCでは動作するということについては、 私にはなんともいえないのですが、 実は、実験した時に、(既にクッキーが存在する)データが残っている、とか。 そんなこともあるのかもしれません。 いづれにしても、推測だけでものをいっているので、これといって確証があるわけではないので、見当違いだったら、余計な手間を掛けさせて申し訳ないと思いますが、一度、そのような、動作をさせるテストをされてみてはどうでしょう。それで、安定して動くようなら良し、ダメなら、私の推測は間違いであり、原因は別だということなので、出る幕はありません。 あと、確認して欲しいのは、そのダメなPCでは、ローカルでは、クッキーの保存&取り出しはうまく行っているんですよね? あと、今回の業務としてのページではなく、単なるクッキーの保存&取り出しは、うまく行くのですよね? そういうのは、前提ですので。

  • BLUEPIXY
  • ベストアンサー率50% (3003/5914)
回答No.2

#1>なるほど、 見当違いかも知れませんが、 5)クエリーで受け取った値をサイト側Cookieとして発行。 6)サイト側からCookie値を確認。5)で書き込んだ値が入っていれば7)へ 5) と 6) の間で、ページを更新(ヘッダを送る)しないとだめだとかいうことはないですかね

Lucie
質問者

補足

>BLUEPIXYさん レスありがとうございます。 「ヘッダを送る」というのが私の知識では理解できていないのですが、5)と6)の間でのページを更新というのは、5)と6)、つまり、Cookieの発行(サイトからローカルのメモリに書き込み)とCookieの参照(ローカルに書かれたCookieをサイトへ)の処理を別々のページで行えば?ということでしょうか? ちなみに同一のJavaScriptの中でCookieのセットとゲットを行っております。こういう場合だとよくないということでしょうか? ちなみに、その他のPCでは問題無く動作し、この1台のPCでだけ問題が発生(固定周期で発生しない)しましたので、Cookieの読み書きのタイミングは疑っていなかったのですが、そのようなことがありうるのでしょうか? 同一OS、同一ブラウザの複数台のPCで検証した際に特定の1台だけでご質問させていただいた不具合がでたので、その1台のWindowsの設定に起因するものかと思っております。(あくまでも推測ですが^^;) 私の方がWindowsの知識にうといので、Windowsの方の設定で何かローカル実行やローカル書き込みに対して、何らかの制限がかけられているのかな?と憶測しているのですが。。。 いかがなものでしょうか?

  • BLUEPIXY
  • ベストアンサー率50% (3003/5914)
回答No.1

どんな風に、書いていますか? 一応、ローカルで実行しても、クッキーのセットとゲットは、できますけど、 もしかして、クッキーをセットする時の動作をローカルでしないでゲットすることをしている(サイトが違う)のではないでしょうか?

Lucie
質問者

補足

BLUEPIXYさん、レスありがとうございます。 すっごく強引な方法ですが 「特定のCD-ROMがあれば、閲覧制限を持たせたサイト上のコンテンツが見れる」 ということを実現するために、 【ローカル】 1)ローカル発行のCookieを作成 2)書き込めればローカルセキュリティゾーンはCookie有効  3)へ。 3)ローカルCookieに書き込んだ値をJavaScriptで抜いてくる。 4)抜いたCookieの値をクエリーとしてサイト側へ渡す。 【サイト】 5)クエリーで受け取った値をサイト側Cookieとして発行。 6)サイト側からCookie値を確認。5)で書き込んだ値が入っていれば7)へ 7)サイト上のコンテンツを閲覧許可 ということをしております。 このような状態でテストをした別のPC(OS、ブラウザは同一のものです。)で、 IEの[プライバシー]タブから[詳細設定]でCookieの設定を  [ファーストパーティ]→[ダイアログを表示する]  [サードパーティ]→[ダイアログを表示する] として、動作確認をしたところ、上記4)5)6)つまり、 「ローカル発行のCookieの値を、クエリーでサイトへ送信、その値をサイト発行のCookieとして受け取る。」という一連の動作は確認しました。(サイトから正しいCookieの値が受信されます。) ですが、十数台色々なOS、ブラウザでテストをしたところ、上記環境のある一台のPCでだけ、最初にご質問させていただいた挙動を示しました。 ですので、ローカルで発行したCookieの値をサイト上から参照しようとしているのではなく(これではセキュリティ上問題ですね。)、ローカルで実行したJavaScriptで値をクエリーで渡し、その値をサイト発行のCookieとして取得しようとしているのです。 このようなシチュエーションでエラーが発生しそうな状況があれば、些細なことでもよろしいのでお教え下さい。 お手数をお掛け致しますが宜しくお願い足します。

関連するQ&A

  • IEでJavaScriptが動かない?

    IE7を使用しています(WindowsXP/SP2)。 ヤフーのトップページ左上に「Yahoo!サービス」とあり その右側に「一覧」というボタンがあります。 これをクリックすると、通常はスライドして選択画面が表示されますが、私が使用しているPCではいきなり以下のページに飛んでしまいます。 http://services.yahoo.co.jp/ これはなぜでしょうか。 いろんなサイトをアクセスしても、ときどき「お使いのブラウザには対応していません」と、Javascript関係でのエラーメッセージが出てきます。インターネットオプションをすべてリセットしても同様です。Javascript制作サイトのサンプルで動作確認しましたが、Javascript自体は動いているようです。 ステータスバーにはときどき警告が出ています。詳細を見ると「・・・はNULLまたはオブジェクトではありません」が多いです。 原因がまったくわからないので助けてほしいです。 ちなみに上記症状はIE6のときから発生しています。 宜しくお願いします。

  • IE6.0でJavaScriptを無効にできない

    IE6.0でJavaScriptを無効にできません。 「ツール」→「インターネットオプション」→「セキュリティー・タブ」→「既定のレベル」→「高」 これでJavaScriptが無効になると思ってたのですが、 例えば以下のようなサンプルをIEで開くと、ちゃんとJavaScriptが動作して、アラートが表示されるのです。 レベルの設定は、念のため、インターネット、イントラネット・・・4つのゾーン全てにレベル高を設定しました。 <html> <input type="button" onClick="alert('テスト')" value="テスト"> </html> JavaScriptを無効にする方法を教えてください。

  • JavaScript、Cookieを有効にして下さい。

    「JavaScript、Cookieを有効にして下さい。 Javaアプレットが無効になっています。」 と表示され、 どうしても見たいWebが見れません。 どうしてもログインできないのです。 Windows2000で、IEを使用しています。 ちなみに、Cookieは、有効に設定してあります。

  • 実行しましたが、ページでエラーが発生しました

    自分で作ったサイトを IE11やIE9で見た時は問題ないのですが、 IE8で見ると、 左下のバーに 「実行しましたが、ページでエラーが発生しました。」 と表示されます。 どこでどんなエラーが発生したのかわかる方法はありますか? JavaScriptはページ内に使ってます。

  • ローカル環境で動作しないJavaScriptについ

    ちょっと気になったので質問させてください。 ↓こちらのページ等を参考にさせていただきながら、フォントサイズを変更できるサイトを制作しています。 http://web-mugen.com/javascript/jquerynochangecssfontsizechange/ ファイルはすべてローカルに保存し、相対パスで読み込んで作業しています。 ところがGoogle Chromeでのみ、ローカル環境でブラウザ確認してみると、フォントサイズが変わらなかったのです。 試しに似たようなプラグインを他にもいくつか試してみましたが、全部同じ結果でした。 が、悶々としたままテストサーバーへアップすると問題なく動いてくれました。 以前も何かのプラグインで同じようなことが、確かIEやFireFoxでも動かなかったことがあった気がします。 最終的に解決したので良いのですが、理由が気になります。 JavaScriptは全てローカルでも動作するものではないのでしょうか。 原因をご存知の方いらっしゃいましたら教えていただけませんか。

  • 【Flash】ローカルで有効なJavascriptがオンラインで動作しない

     失礼いたします。  現在、私はFlash8 BasicでActionscriptとJavascriptを使って、クリックで開くポップアップウィンドウを作成しているのですが、 ローカル環境で実行できるものがオンラインで実行できないという現象が起こって困っています。  まず、私は以下のページの「GetURL"javascript :"」の項を参考にして作りました。 このページの技術は2004年のもので、FlashPlayer7以下でないと動作しない事を確認しています。 http://www.adobe.com/jp/support/flash/ts/documents/fl0308.html  私はMacのIE5.2とSafari2.0.4でブラウザチェックしているのですが、Mac版IE5.2だと、上記したページのスクリプトがローカルでしか動作しません。 私のファイルに不備があるのかと思い、試しに上記ページのサンプルをアップロードしてみたのですがそれもうまくいきません。 こちらもローカルだと動作します。  ローカル時の確認方法はHTMLファイルをドラッグする形です。  これはサーバー側の問題なのでしょうか? もしこの方法が有効でない場合は、スクリプト自体を変えた方が良いのでしょうか?  どなたかご回答願います。

  • Javascriptを最後に実行する方法

    サイト内に他のページ情報を表示するJavascriptを記述したところ、 他ページの情報を読み取るのに時間がかかり、結果としてJavascriptの記述部分以降の 表示が遅くなるようです。 いろいろ調べたところでは、Javascriptをページ最後で実行させればよいことは分かったのですが、 Javascriptの表示場所は変えずに、実行だけを最後に行うことはできるのでしょうか? 実行させたいJavascriptは以下の内容です。 <SCRIPT language="JavaScript" src="http://XXXX"></SCRIPT> ※RSSを表示する

  • IE8をインストール後のJavascriptについて

    最近IE8をインストールしたのですが、 Javascriptによる名前変換のHPが見れなくて困っています。 ページを開くと、 「このWebサイトはスクリプト化されたウィンドウを使用して情報を依頼しています。 このWebサイトを信頼している場合、ここをクリックして、スクリプト化されたウィンドウを許可してください...」 といったポップアップが表示されます。 それをクリックして「一時的に許可」を選択しても何も変化はありません。 色々調べて、 「インターネットオプション→プライバシー→全てのcookieを受け入れる」 にしてみたりもしましたが、ダメでした。 どうすれば見れるようになるでしょうか? どなたか回答お願いいたします!

  • javascriptを使うとIEで警告文が出る?

    サイト製作でjavascriptを使用したトップページindex.htmlを作りました。 自分のIEでプレビュー表示してみると、IEの画面上部に 「セキュリティ保護のため、コンピュータにアクセスできるアクティブコンテンツは表示されないよう、IEで制限されています。オプションを表示するにはここをクリックしてください。」 と出ました。毎回アクセスするたびにこのような表示が出ると、サイト訪問者に迷惑だと思うし、一回でも表示されたら「怪しいサイトじゃないか?」と思われてしまいます。 しかし、いろいろなサイトのトップページのソースを見てみるとけっこうjavascriptを使っていますが、このような警告文は表示されません。初めて訪問したサイトでも表示されないようです。 もしかして、警告文が出るのは、私がローカルフォルダ内のindex.htmlを直接表示しているから警告文が出るのでしょうか? サーバーにアップロードしてサイトを見る分にはこのような警告文は出ないのでしょうか? ちなみにjavascriptは単に日付関連の計算・結果表示しか使用していません。

  • IEだけJavaScriptエラーが起こります

    JavaScript初心者です。 下記のサイトを参考にしてJavaScriptでロールオーバーを入れました。 http://css-happylife.com/log/javascript/000157.shtml firefox、chromeでは問題なく動くのですが、IEだけが 'getAttribute(...)' is null or not an object というエラーが起こります。 いろいろ調べたのですが、全く同じソースを使っているのに、他のサイトやサンプルサイトではエラーが出ていません。 他にjavascriptを入れているとか、ソースを挿入する場所とかでエラーが起こったりするのでしょうか?? よろしくおねがいします。