原因調査

日記
01 /26 2016
ラーさんのJavaScript勉強の際におきた問題の原因調査の流れについて。

【KKSのアラド勉強日記】
Web技術の勉強(3日目)JavaScriptの変数と計算
http://blog.livedoor.jp/gigadon-nikki/archives/1160773.html


【問題】
+5ボタンを押すと、横のフォームの数値が5ずつ増えていくはずが、謎のURLが入る事がある。

kksjsmodai.png

さて、原因を追ってみましょう。

1.原因を予想する

まずソースをチェック。
+5ボタンを押したときに動く処理の部分を抽出。

a = 0;

function arad() {
document.senki.sokuhou.value = a+=5;
}


+5するだけですから、中身もシンプル。
+5ボタンを押すたびに、aの内容をフォームに入れるというもの。

つまり、どこかのタイミングでaの中身が謎のURLにされている可能性がある。


2.実際のHTMLソースを見る

無料レンタルサーバーとかだと広告が自動で入れられたりするため、自分がアップロードしたファイルとは少し違くなる。
ので、実際にそのURLを開いた状態でソースをチェック。

IEなら、右クリックで出てくるメニューからソースを表示を選ぶだけ。

kksjsmodai2.png

すると、怪しい部分が2か所。
javascriptを読み込んでる部分があります。

ayasii.png

さて、問題になってるのはどっち!
という事で、ラーさんの現象で表示されたURLを見てみましょう。

https://ad.ad-arata.com/なんちゃら~

おや、このアドレスは・・・

adarata.png

そう、広告欄で使われてるURLです。

ソースを追うと分かるのですが、この1行広告の最後の部分が、怪しいとあげた部分の後者にあたります。


3.広告用スクリプトの中を見てみる

ではこのスクリプトの中身を見てみましょう。

script type="text/javascript" charset="utf-8" src="//asumi.shinobi.jp/fire?f=184"

となっているので、アドレスバーにhttp://asumi.shinobi.jp/fire?f=184と打ちこんでみると、fire.jsというファイルに辿りつきます。
ので、とりあえず保存。

そしてメモ帳で開いてみて、aという変数を使ってないかチェックしてみると・・・

var a = document.querySelector(\"#imobspot_1_0_p > a\");



という文があります。
これ以上の解析は面倒なのでパスしましたが、おそらくコレが原因でしょう。

結果として、

1.ラーさんが a に0を入れる。
2.次に広告用スクリプトが a にURLを入れる。
3.ラーさんが a に+5 して表示しようとする。

という流れになり、3の処理がうまく機能せず、謎のURLが表示されてたのでしょう。
(うまく機能せずというか、もしかしたら謎のURLを数値化したものに+5するという処理が動いてたかもしれませんが。)

とにかく、コレが原因で思ったような結果が出なかったんじゃないでしょうか!
という結論になりました。僕の中では。




以上、問題解決の考え方の参考になればと思い・・・
なんて建前は言いません。
記事ネタ不足だったため使わせていただきました。

関連記事

コメント

非公開コメント