- 締切済み
JavaScriptで作成されるボタンの動作原理
JavaScriptの読み方(phpも含む?) あるJavaScriptソースの読み方がわからないので質問させていただきました。 動作原理がわからないJavaScriptのソース <p class="al-c"><script type="text/javascript" src="http://xxxxxxxxx.php?ser=yyyyy&m=fakjlfafask"></script></p> このソースをHTMLに埋め込むとボタン(画像のボタンです)が表示される。 そのボタンをクリックするとJavaScriptで記述されたポップアップが表示されました。 srcのURLにてPHPのソースを呼んでいると思うのですが、これは、どのような仕組みで動作していると考えられるのでしょうか。 なぜなら、HTMLソースの中に「ボタンの画像自体」と「JavaScriptでクリックするイベント」も存在しないためです。 ちなみに、URLをそのままブラウザに打ち込むと「~.js」のダウンロードが開始されるような動作になりました。 最終的にはVBAでJavaScriptボタンをクリックしてポップアップを自動で表示させたいと思っておりますが、実現できますでしょうか? 以上、よろしくお願いいたします。
- みんなの回答 (3)
- 専門家の回答
みんなの回答
- fujillin
- ベストアンサー率61% (1594/2576)
#2です。 >膨大なソースがあるJavaScriptファイルが存在し処理をしている個所がわかりませんでした。 基本的に関係の無い処理をしているとは思えないので、そのファイル全体がその処理になっているのではないでしょうか? >なぜ、表示されないのでしょうか? 表示されないという結果しかわからないので、原因はわかりません。 妄想をたくましくしてあてずっぽうの推測をしてみれば、 1) 設置方法が間違っていて、スクリプトが動作していない。 2) 正しく設置し、スクリプトの処理は行なわれているが、正しく処理された結果、表示されない。 といったあたりが怪しいかと。 1)は、アドレスやエンコードがあっていないなど。(特に、エンコードの設定) 2)は、スクリプトが環境を判断して処理を変えているなどの場合。
- fujillin
- ベストアンサー率61% (1594/2576)
>ブラウザに打ち込むと「~.js」のダウンロードが開始されるような jsファイルはテキストファイルですので、一旦保存してテキストエディタなどで内容を確認してみれば動作原理もわかるかと思います。 想像での回答になりますが・・・ たとえば、phpから返されるスクリプトを以下のように仮定すれば、結果的にHTMLソースは次ものと同等になります。 <p> <script type="text/javascript"> // *** ここからphpの出力と仮定 *** document.write("\u003Cinput type='button' value='\u0020click\u0020' onclick='hoge()'\u003E"); var hoge = function(){ alert("hoge"); } // ****** ここまで ****** </script> </p> このソースを実行してみれば、ボタンをクリックするとアラートが表示されるものになります。 実際のコードがどのように記述されているかは不明ですが、原理的にはこのようなものではないでしょうか? (実際には、もっといろいろと記述されていると想像しますが) >「ボタンの画像自体」と「JavaScriptでクリックするイベント」も存在しないためです 画像のURLやクリックのイベントはphpから出力されるスクリプトに記述されているはずです。
- Gotthold
- ベストアンサー率47% (396/832)
> 動作原理がわからないJavaScriptのソース > <p class="al-c"><script type="text/javascript" > src="http://xxxxxxxxx.php?ser=yyyyy&m=fakjlfafask"></script></p> これはJavaScriptのソースではなくてHTMLのソースですよね? > srcのURLにてPHPのソースを呼んでいると思うのですが、 いいえ、PHPのソースは読めません。 (PHPのページアクセスしたときにPHPのソースが出てくることは設定ミスしない限りないでしょ?) PHPが出力したJavaScriptのソースを読んでいるはずです。 PHPのことは忘れてJavaScriptとして考えてください。 そもそもブラウザには、http://xxxxxxxxx.php?ser=yyyyy&m=fakjlfafask が phpから出力されたものだと言うことは分かりませんし、 ページを表示するためにそれが静的なものなのかphpから出力されたものなのかを知る必要はありません。 なのでphpなんて意識しなくてもJavaScriptとしての動作は分かるはずです。
お礼
回答ありがとうございます。 PHPの開発経験がないのですが、画面に関与するのは「HTML」か「JavaScript」なのですね。 ありがとうございました。
補足
回答ありがとうございます。 おっしゃる通り、JavaScriptのファイルをダウンロードしたファイルを拝見したところ膨大なソースがあるJavaScriptファイルが存在し処理をしている個所がわかりませんでした。 そこで、ローカル環境にjsファイルを配置して <p class="al-c"><script type="text/javascript" src="C:\~.js"></script></p> 上記のように記述しましたが、ボタン画像がブログ画面に表示されませんでした。 なぜ、表示されないのでしょうか? 追加で質問になりますが、よろしくお願いいたします。