• ベストアンサー
※ ChatGPTを利用し、要約された質問です(原文:外部読み込みで動かないときの対処法)

外部読み込みで動かないときの対処法

このQ&Aのポイント
  • プログラミングの初心者による外部読み込みでの問題に対する対処法
  • 外部読み込みによるJavaScriptの動作不良への対処法とその原因について解説
  • 外部読み込みにおけるJavaScriptの問題への解決策と注意点

質問者が選んだベストアンサー

  • ベストアンサー
  • yambejp
  • ベストアンサー率51% (3827/7415)
回答No.5

>『protocolを指定してますが、http:で統一…』のくだり ようは、自分自身のファイルがhttpプロトコルをつかっていれば http://www.exsample.com/jsを呼びますが、 自分がhttps:だったりするとhttps://www.exsample.com/jsを 読みに行っちゃうということです。 もう少し突っ込めばローカルのファイルを処理すると file://www.exsample.com/jsになってしまい、テストするにもブレがでてきます。 //hoge.htm <html> <head> <script type="text/javascript" src="hoge.js"></script> </head> <body> test </body> //hoge.js window.onload=function(){ var s=document.createElement('script'); s.setAttribute('src','http://www.exsample.com/js?pcid=PC-123456-A'); s.setAttribute('type','text/javascript'); document.getElementsByTagName("head")[0].appendChild(s); var pc = new predicta.PClick(); pc.start(); } みたいな感じですかねぇ・・・

その他の回答 (4)

回答No.4

jsの外部ファイルが、<head>内で読み込みを行っているため document.writeを<head>内で行っているからでは? jsを外部ファイル化してないときは、<body>内で、document.writeしているので。 document.writeは、document.writeが書いてある場所にそのまま、書きだされる イメージだったかと。

hayashinaoko
質問者

お礼

お礼が大変おそくなり、失礼いたしました。回答ありがとうございました。

回答No.3

まさかとは思いますが、HTMLに書いている方の<script src="">のドメインを間違えて、 スクリプトファイルを読めなかったとか、、、 .com .net ディレクトリを間違えてファイルが見つからないとか、、、

hayashinaoko
質問者

お礼

回答ありがとうございます。 回答していただいたようなミスで読みこめない!などのお恥ずかしい経験もあります。 ディレクトリのチェックも再度確認いたします。

  • nobuoka
  • ベストアンサー率69% (23/33)
回答No.2

「動かない」 とのことですが、「動かない」 とは具体的にどのような状態のことを言っているのでしょうか? 「期待通りに実行されない」 ということでしたら、原因はいくつか考えられます。 ・JavaScript ファイルの読み込みにそもそも失敗している (script 要素の src 属性の値が間違っている) ・ファイルの読み込みは行われているが、何らかの理由で失敗している などなど ファイルの読み込みに失敗しているかどうかのちゃんとした方法はちょっと思いつきませんが、例えば JavaScript ファイルに alert( "test" ); とだけ書いて、あとはコメントアウトして実行して、alert が表示されるかどうかで確認してみてください。 もしそれで alert が表示されないならば、JavaScript ファイルの読み込みに失敗しているであろうと思いますので、script 要素の src 属性の値を確認してください。 もし alert が表示されるのでしたら、JavaScript の実行時に何らかのエラーが発生していると思いますので、ブラウザへのエラー出力 (例えば Firefox であれば "ツール" -> "エラーコンソール" で開く画面で確認できます) を確認してみてください。

hayashinaoko
質問者

お礼

回答ありがとうございます。

  • yambejp
  • ベストアンサー率51% (3827/7415)
回答No.1

なんともいえませんが、こんな書き方をしてみては? ただ、protocolを指定してますが、http:で統一した方がよいような気がしますが・・・ <html> <head> <script type="text/javascript"> window.onload=function(){ var s=document.createElement('script'); s.setAttribute('src',document.location.protocol+'//www.exsample.com/js?pcid=PC-123456-A'); s.setAttribute('type','text/javascript'); document.getElementsByTagName("head")[0].appendChild(s); var pc = new predicta.PClick(); pc.start(); } </script> </head> <body> test </body> </html>

hayashinaoko
質問者

お礼

回答ありがとうございます。 プログラミングの入口にも立ってないので、『protocolを指定してますが、http:で統一…』のくだりでいきなりつまづいてしまいました。 yambejpさんの回答の中はhtml内で記述されてますが、今回外部ファイルでの記述が条件なので、教えていただいた記述方法『window.onload=function(){ ~ pc.start();}』を外部ファイル内に記述してテストしてみます!

関連するQ&A