Update firerecord.js
Added the playback function, which at the moment displays the script line by line in a for loop when the play button is clicked. also formatted code slightly
This commit is contained in:
parent
d3edd458a0
commit
edb54b86e1
@ -4,533 +4,495 @@ var loadx = null;
|
|||||||
var page = null;
|
var page = null;
|
||||||
|
|
||||||
window.addEventListener("load", function load(event) {
|
window.addEventListener("load", function load(event) {
|
||||||
window.removeEventListener("load", load, false); //remove listener, no longer needed
|
window.removeEventListener("load", load, false); // remove listener, no
|
||||||
firerecord.init();
|
// longer needed
|
||||||
|
firerecord.init();
|
||||||
}, false);
|
}, false);
|
||||||
|
|
||||||
|
var firerecord = function() {
|
||||||
var firerecord = function () {
|
var prefManager = Components.classes["@mozilla.org/preferences-service;1"]
|
||||||
var prefManager = Components.classes["@mozilla.org/preferences-service;1"].getService(Components.interfaces.nsIPrefBranch);
|
.getService(Components.interfaces.nsIPrefBranch);
|
||||||
return {
|
return {
|
||||||
init: function () {
|
init : function() {
|
||||||
getBrowser().addEventListener("load", function (){alert("loaded");});
|
getBrowser().addEventListener("load", function() {
|
||||||
var appcontent = document.getElementById("appcontent"); // browser
|
alert("loaded");
|
||||||
if (appcontent) {
|
});
|
||||||
appcontent.addEventListener("DOMContentLoaded", firerecord.run, true);
|
var appcontent = document.getElementById("appcontent"); // browser
|
||||||
}
|
if (appcontent) {
|
||||||
},
|
appcontent.addEventListener("DOMContentLoaded", firerecord.run,
|
||||||
|
true);
|
||||||
//Rylan
|
|
||||||
running: function (){
|
|
||||||
if(recordingx){
|
|
||||||
recordingx = false;
|
|
||||||
alert("Stop Listen");
|
|
||||||
openUILinkIn(window.content.location.href,"current");
|
|
||||||
//document.location.reload();
|
|
||||||
//closes all tabs on firefox.
|
|
||||||
}
|
|
||||||
else{
|
|
||||||
recordingx = true;
|
|
||||||
alert("Start Listen");
|
|
||||||
//createFile("Initialize New Test File");
|
|
||||||
firerecord.run();
|
|
||||||
}
|
|
||||||
|
|
||||||
},
|
|
||||||
openfile: function(){
|
|
||||||
|
|
||||||
path = io.openPath();
|
|
||||||
|
|
||||||
},
|
|
||||||
newfile: function(){
|
|
||||||
path = io.newPath();
|
|
||||||
createFile();
|
|
||||||
},
|
|
||||||
//rylan
|
|
||||||
/*file: function(){
|
|
||||||
const nsIFilePicker = Components.interfaces.nsIFilePicker;
|
|
||||||
|
|
||||||
var fp = Components.classes["@mozilla.org/filepicker;1"]
|
|
||||||
.createInstance(nsIFilePicker);
|
|
||||||
fp.init(window, "Dialog Title", nsIFilePicker.modeOpen);
|
|
||||||
fp.appendFilters(nsIFilePicker.filterAll | nsIFilePicker.filterText);
|
|
||||||
|
|
||||||
var rv = fp.show();
|
|
||||||
if (rv == nsIFilePicker.returnOK || rv == nsIFilePicker.returnReplace) {
|
|
||||||
var file = fp.file;
|
|
||||||
// Get the path as string. Note that you usually won't
|
|
||||||
// need to work with the string paths.
|
|
||||||
path = fp.file.path;
|
|
||||||
// work with returned nsILocalFile...
|
|
||||||
|
|
||||||
}
|
}
|
||||||
},*/
|
|
||||||
|
|
||||||
//rylan
|
|
||||||
checkpage: function(readloc){
|
|
||||||
page = window.content.location.href;
|
|
||||||
if (page != readloc){
|
|
||||||
openUILinkIn(readloc,"current");
|
|
||||||
|
|
||||||
}
|
|
||||||
},
|
},
|
||||||
|
|
||||||
//rylan
|
// Rylan
|
||||||
readr: function(){
|
running : function() {
|
||||||
var a= "http://rt.com/news/";
|
if (recordingx) {
|
||||||
var b= "A";
|
recordingx = false;
|
||||||
var c= "http://rt.com/news/ukraine-tymoshenko-pardon-request-508/";
|
alert("Stop Listen");
|
||||||
|
openUILinkIn(window.content.location.href, "current");
|
||||||
|
// document.location.reload();
|
||||||
|
// closes all tabs on firefox.
|
||||||
|
} else {
|
||||||
|
recordingx = true;
|
||||||
|
alert("Start Listen");
|
||||||
|
// createFile("Initialize New Test File");
|
||||||
|
firerecord.run();
|
||||||
|
}
|
||||||
|
|
||||||
|
},
|
||||||
|
openfile : function() {
|
||||||
|
|
||||||
|
path = io.openPath();
|
||||||
|
|
||||||
|
},
|
||||||
|
newfile : function() {
|
||||||
|
path = io.newPath();
|
||||||
|
io.createFile(path);
|
||||||
|
},
|
||||||
|
// rylan
|
||||||
|
/*
|
||||||
|
* file: function(){ const nsIFilePicker =
|
||||||
|
* Components.interfaces.nsIFilePicker;
|
||||||
|
*
|
||||||
|
* var fp = Components.classes["@mozilla.org/filepicker;1"]
|
||||||
|
* .createInstance(nsIFilePicker); fp.init(window, "Dialog Title",
|
||||||
|
* nsIFilePicker.modeOpen); fp.appendFilters(nsIFilePicker.filterAll |
|
||||||
|
* nsIFilePicker.filterText);
|
||||||
|
*
|
||||||
|
* var rv = fp.show(); if (rv == nsIFilePicker.returnOK || rv ==
|
||||||
|
* nsIFilePicker.returnReplace) { var file = fp.file; // Get the path as
|
||||||
|
* string. Note that you usually won't // need to work with the string
|
||||||
|
* paths. path = fp.file.path; // work with returned nsILocalFile...
|
||||||
|
* } },
|
||||||
|
*/
|
||||||
|
|
||||||
|
// rylan
|
||||||
|
checkpage : function(readloc) {
|
||||||
|
page = window.content.location.href;
|
||||||
|
if (page != readloc) {
|
||||||
|
openUILinkIn(readloc, "current");
|
||||||
|
|
||||||
|
}
|
||||||
|
},
|
||||||
|
|
||||||
|
// rylan
|
||||||
|
readr : function() {
|
||||||
|
var a = "http://rt.com/news/";
|
||||||
|
var b = "A";
|
||||||
|
var c = "http://rt.com/news/ukraine-tymoshenko-pardon-request-508/";
|
||||||
var d = "null";
|
var d = "null";
|
||||||
var e = "null";
|
var e = "null";
|
||||||
var f = "null";
|
var f = "null";
|
||||||
setTimeout(function(){firerecord.checkpage(a);},5000);
|
setTimeout(function() {
|
||||||
setTimeout(function(){firerecord.fire(b,c,d,e,f);},8000);
|
firerecord.checkpage(a);
|
||||||
//setTimeout(function(){firerecord.fireExp();},8000);
|
}, 5000);
|
||||||
|
setTimeout(function() {
|
||||||
|
firerecord.fire(b, c, d, e, f);
|
||||||
|
}, 8000);
|
||||||
|
// setTimeout(function(){firerecord.fireExp();},8000);
|
||||||
},
|
},
|
||||||
|
// David
|
||||||
//rylan
|
playback : function() {
|
||||||
nullCheck: function(elem){
|
var playThis = io.getLine(path);
|
||||||
if(!elem.href){
|
for(var i = 0; i < playThis.length; i++)
|
||||||
elem.href = "null";
|
{
|
||||||
}
|
alert(playThis[i]);
|
||||||
if(!elem.name){
|
|
||||||
elem.name = "null";
|
|
||||||
}
|
|
||||||
if(!elem.type){
|
|
||||||
elem.type= "null";
|
|
||||||
}
|
|
||||||
if(!elem.value){
|
|
||||||
elem.value= "null";
|
|
||||||
}
|
|
||||||
if(!elem.form){
|
|
||||||
elem.form= "null";
|
|
||||||
}
|
|
||||||
if(!elem.length){
|
|
||||||
elem.length= "null";
|
|
||||||
}
|
|
||||||
if(!elem.target){
|
|
||||||
elem.target = "null";
|
|
||||||
}
|
|
||||||
if(!elem.action){
|
|
||||||
elem.action= "null";
|
|
||||||
}
|
|
||||||
if(!elem.src){
|
|
||||||
elem.src= "null";
|
|
||||||
}
|
|
||||||
if(!elem.charset){
|
|
||||||
elem.charset= "null";
|
|
||||||
}
|
|
||||||
if(!elem.text){
|
|
||||||
elem.text= "null";
|
|
||||||
}
|
|
||||||
if(!elem.index){
|
|
||||||
elem.index= "null";
|
|
||||||
}
|
|
||||||
if(!elem.size){
|
|
||||||
elem.size= "null";
|
|
||||||
}
|
|
||||||
if(!elem.summary){
|
|
||||||
elem.summary= "null";
|
|
||||||
}
|
|
||||||
if(!elem.caption){
|
|
||||||
elem.caption= "null";
|
|
||||||
}
|
|
||||||
|
|
||||||
return elem;
|
|
||||||
},
|
|
||||||
|
|
||||||
/*
|
|
||||||
|
|
||||||
//rylan
|
|
||||||
fireExp: function(){
|
|
||||||
var all = content.document.getElementsByTagName("A");
|
|
||||||
for (var i = 0; i < all.length; ++i) {
|
|
||||||
var elem = all[i];
|
|
||||||
if (i==62){
|
|
||||||
var obj = document.createEvent("MouseEvents");
|
|
||||||
obj.initEvent("click", true, true);
|
|
||||||
elem.dispatchEvent(obj);
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
},*/
|
},
|
||||||
|
|
||||||
//rylan
|
// rylan
|
||||||
fire: function(b,c,d,e,f){
|
nullCheck : function(elem) {
|
||||||
|
if (!elem.href) {
|
||||||
|
elem.href = "null";
|
||||||
|
}
|
||||||
|
if (!elem.name) {
|
||||||
|
elem.name = "null";
|
||||||
|
}
|
||||||
|
if (!elem.type) {
|
||||||
|
elem.type = "null";
|
||||||
|
}
|
||||||
|
if (!elem.value) {
|
||||||
|
elem.value = "null";
|
||||||
|
}
|
||||||
|
if (!elem.form) {
|
||||||
|
elem.form = "null";
|
||||||
|
}
|
||||||
|
if (!elem.length) {
|
||||||
|
elem.length = "null";
|
||||||
|
}
|
||||||
|
if (!elem.target) {
|
||||||
|
elem.target = "null";
|
||||||
|
}
|
||||||
|
if (!elem.action) {
|
||||||
|
elem.action = "null";
|
||||||
|
}
|
||||||
|
if (!elem.src) {
|
||||||
|
elem.src = "null";
|
||||||
|
}
|
||||||
|
if (!elem.charset) {
|
||||||
|
elem.charset = "null";
|
||||||
|
}
|
||||||
|
if (!elem.text) {
|
||||||
|
elem.text = "null";
|
||||||
|
}
|
||||||
|
if (!elem.index) {
|
||||||
|
elem.index = "null";
|
||||||
|
}
|
||||||
|
if (!elem.size) {
|
||||||
|
elem.size = "null";
|
||||||
|
}
|
||||||
|
if (!elem.summary) {
|
||||||
|
elem.summary = "null";
|
||||||
|
}
|
||||||
|
if (!elem.caption) {
|
||||||
|
elem.caption = "null";
|
||||||
|
}
|
||||||
|
|
||||||
|
return elem;
|
||||||
|
},
|
||||||
|
|
||||||
|
/*
|
||||||
|
*
|
||||||
|
* //rylan fireExp: function(){ var all =
|
||||||
|
* content.document.getElementsByTagName("A"); for (var i = 0; i <
|
||||||
|
* all.length; ++i) { var elem = all[i]; if (i==62){ var obj =
|
||||||
|
* document.createEvent("MouseEvents"); obj.initEvent("click", true,
|
||||||
|
* true); elem.dispatchEvent(obj); } } },
|
||||||
|
*/
|
||||||
|
|
||||||
|
// rylan
|
||||||
|
fire : function(b, c, d, e, f) {
|
||||||
|
|
||||||
var all = content.document.getElementsByTagName(b);
|
var all = content.document.getElementsByTagName(b);
|
||||||
for (var i = 0; i < all.length; ++i) {
|
for ( var i = 0; i < all.length; ++i) {
|
||||||
var elem = all[i];
|
var elem = all[i];
|
||||||
elem = firerecord.nullCheck(elem);
|
elem = firerecord.nullCheck(elem);
|
||||||
switch (elem.tagName) {
|
switch (elem.tagName) {
|
||||||
//All of these cases need null checks for each attribute.
|
// All of these cases need null checks for each attribute.
|
||||||
|
|
||||||
case "A":
|
case "A":
|
||||||
|
|
||||||
if (elem.href == c){
|
if (elem.href == c) {
|
||||||
var obj = document.createEvent("MouseEvents");
|
var obj = document.createEvent("MouseEvents");
|
||||||
obj.initEvent("click", true, true);
|
obj.initEvent("click", true, true);
|
||||||
elem.dispatchEvent(obj);
|
elem.dispatchEvent(obj);
|
||||||
}
|
}
|
||||||
|
|
||||||
break;
|
break;
|
||||||
|
|
||||||
case "BUTTON":
|
case "BUTTON":
|
||||||
if (elem.name == c && elem.type == d && elem.value == e && elem.form == f)
|
if (elem.name == c && elem.type == d && elem.value == e
|
||||||
{
|
&& elem.form == f) {
|
||||||
var obj = document.createEvent("MouseEvents");
|
var obj = document.createEvent("MouseEvents");
|
||||||
obj.initEvent("click", true, true);
|
obj.initEvent("click", true, true);
|
||||||
elem.dispatchEvent(obj);
|
elem.dispatchEvent(obj);
|
||||||
}
|
}
|
||||||
break;
|
break;
|
||||||
case "FORM":
|
case "FORM":
|
||||||
if (elem.name == c && elem.length == d && elem.target == e && elem.action == f)
|
if (elem.name == c && elem.length == d && elem.target == e
|
||||||
{
|
&& elem.action == f) {
|
||||||
var obj = document.createEvent("MouseEvents");
|
var obj = document.createEvent("MouseEvents");
|
||||||
obj.initEvent("click", true, true);
|
obj.initEvent("click", true, true);
|
||||||
elem.dispatchEvent(obj);
|
elem.dispatchEvent(obj);
|
||||||
}
|
}
|
||||||
break;
|
break;
|
||||||
case "IMG":
|
case "IMG":
|
||||||
if (elem.name == c && elem.src == d)
|
if (elem.name == c && elem.src == d) {
|
||||||
{
|
var obj = document.createEvent("MouseEvents");
|
||||||
var obj = document.createEvent("MouseEvents");
|
obj.initEvent("click", true, true);
|
||||||
obj.initEvent("click", true, true);
|
elem.dispatchEvent(obj);
|
||||||
elem.dispatchEvent(obj);
|
}
|
||||||
}
|
break;
|
||||||
break;
|
case "INPUT":
|
||||||
case "INPUT":
|
if (elem.name == c && elem.type == d && elem.value == e) {
|
||||||
if (elem.name == c && elem.type == d && elem.value == e)
|
var obj = document.createEvent("MouseEvents");
|
||||||
{
|
obj.initEvent("click", true, true);
|
||||||
var obj = document.createEvent("MouseEvents");
|
elem.dispatchEvent(obj);
|
||||||
obj.initEvent("click", true, true);
|
}
|
||||||
elem.dispatchEvent(obj);
|
break;
|
||||||
}
|
case "LINK":
|
||||||
break;
|
if (elem.href == c && elem.type == d && elem.charset == e) {
|
||||||
case "LINK":
|
var obj = document.createEvent("MouseEvents");
|
||||||
if (elem.href == c && elem.type == d && elem.charset == e)
|
obj.initEvent("click", true, true);
|
||||||
{
|
elem.dispatchEvent(obj);
|
||||||
var obj = document.createEvent("MouseEvents");
|
}
|
||||||
obj.initEvent("click", true, true);
|
break;
|
||||||
elem.dispatchEvent(obj);
|
case "OPTION":
|
||||||
}
|
if (elem.text == c && elem.value == d && elem.index == e) {
|
||||||
break;
|
var obj = document.createEvent("MouseEvents");
|
||||||
case "OPTION":
|
obj.initEvent("click", true, true);
|
||||||
if (elem.text == c && elem.value == d && elem.index == e)
|
elem.dispatchEvent(obj);
|
||||||
{
|
}
|
||||||
var obj = document.createEvent("MouseEvents");
|
break;
|
||||||
obj.initEvent("click", true, true);
|
case "SELECT":
|
||||||
elem.dispatchEvent(obj);
|
if (elem.type == c && elem.name == d && elem.size == e) {
|
||||||
}
|
var obj = document.createEvent("MouseEvents");
|
||||||
break;
|
obj.initEvent("click", true, true);
|
||||||
case "SELECT":
|
elem.dispatchEvent(obj);
|
||||||
if (elem.type == c && elem.name == d && elem.size == e)
|
}
|
||||||
{
|
break;
|
||||||
var obj = document.createEvent("MouseEvents");
|
case "TABLE":
|
||||||
obj.initEvent("click", true, true);
|
if (elem.summary == c && elem.caption == d) {
|
||||||
elem.dispatchEvent(obj);
|
var obj = document.createEvent("MouseEvents");
|
||||||
}
|
obj.initEvent("click", true, true);
|
||||||
break;
|
elem.dispatchEvent(obj);
|
||||||
case "TABLE":
|
}
|
||||||
if (elem.summary == c && elem.caption == d)
|
break;
|
||||||
{
|
case "TEXTAREA":
|
||||||
var obj = document.createEvent("MouseEvents");
|
if (elem.name == c && elem.type == d && elem.value == e) {
|
||||||
obj.initEvent("click", true, true);
|
var obj = document.createEvent("MouseEvents");
|
||||||
elem.dispatchEvent(obj);
|
obj.initEvent("click", true, true);
|
||||||
}
|
elem.dispatchEvent(obj);
|
||||||
break;
|
}
|
||||||
case "TEXTAREA":
|
break;
|
||||||
if (elem.name == c && elem.type == d && elem.value == e)
|
|
||||||
{
|
}
|
||||||
var obj = document.createEvent("MouseEvents");
|
|
||||||
obj.initEvent("click", true, true);
|
|
||||||
elem.dispatchEvent(obj);
|
|
||||||
}
|
|
||||||
break;
|
|
||||||
|
|
||||||
}
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
},
|
},
|
||||||
|
|
||||||
|
|
||||||
run : function () {
|
|
||||||
|
|
||||||
var head = content.document.getElementsByTagName("head")[0],
|
|
||||||
style = content.document.getElementById("link-target-finder-style"),
|
|
||||||
all = content.document.getElementsByTagName("*"),
|
|
||||||
foundElements = 0;
|
|
||||||
|
|
||||||
var info = new Array(); // Made this global
|
run : function() {
|
||||||
var Recording = true; // Just need this until we finish with the the buttons.
|
|
||||||
|
|
||||||
if (!style) {
|
var head = content.document.getElementsByTagName("head")[0], style = content.document
|
||||||
style = content.document.createElement("link");
|
.getElementById("link-target-finder-style"), all = content.document
|
||||||
style.id = "link-target-finder-style";
|
.getElementsByTagName("*"), foundElements = 0;
|
||||||
style.type = "text/css";
|
|
||||||
style.rel = "stylesheet";
|
|
||||||
style.href = "chrome://firerecord/skin/skin.css";
|
|
||||||
head.appendChild(style);
|
|
||||||
}
|
|
||||||
|
|
||||||
// Find all elements attributes and add a listener
|
var info = new Array(); // Made this global
|
||||||
//-----------------------------------------------------------
|
var Recording = true; // Just need this until we finish with the
|
||||||
// Add author(s) to this section. Who did this? David and Peter?
|
// the buttons.
|
||||||
for (var i = 0; i < all.length; ++i) {
|
|
||||||
//Define the classname variable
|
|
||||||
elm = all[i];
|
|
||||||
//deleted local call to new array info
|
|
||||||
var validtags = ["A", "BUTTON", "FORM", "IMG", "INPUT", "LINK", "OPTION", "SELECT", "TABLE", "TEXTAREA"];
|
|
||||||
//Add a click event listener to all the valid tags.
|
|
||||||
if (validtags.indexOf(all[i].tagName) < 0) continue;
|
|
||||||
|
|
||||||
info[0] = all[i].tagName;
|
|
||||||
|
|
||||||
//Feel free to change this to a for each...
|
if (!style) {
|
||||||
if(recordingx){
|
style = content.document.createElement("link");
|
||||||
switch (info[0]) {
|
style.id = "link-target-finder-style";
|
||||||
//All of these cases need null checks for each attribute.
|
style.type = "text/css";
|
||||||
case "INPUT":
|
style.rel = "stylesheet";
|
||||||
|
style.href = "chrome://firerecord/skin/skin.css";
|
||||||
elm.className += ((elm.className.length > 0) ? " " : "") + "link-target-finder-selected";
|
head.appendChild(style);
|
||||||
elm.addEventListener("keyup", handleType, false);
|
|
||||||
break;
|
|
||||||
case "A":
|
|
||||||
|
|
||||||
|
|
||||||
elm.className += ((elm.className.length > 0) ? " " : "") + "link-target-finder-selected";
|
|
||||||
elm.addEventListener("click", handleEvent, false);
|
|
||||||
break;
|
|
||||||
case "BUTTON":
|
|
||||||
|
|
||||||
elm.className += ((elm.className.length > 0) ? " " : "") + "link-target-finder-selected";
|
|
||||||
elm.addEventListener("click", handleEvent, false);
|
|
||||||
break;
|
|
||||||
case "FORM":
|
|
||||||
|
|
||||||
elm.className += ((elm.className.length > 0) ? " " : "") + "link-target-finder-selected";
|
|
||||||
elm.addEventListener("click", handleEvent, false);
|
|
||||||
break;
|
|
||||||
case "IMG":
|
|
||||||
|
|
||||||
elm.className += ((elm.className.length > 0) ? " " : "") + "link-target-finder-selected";
|
|
||||||
elm.addEventListener("click", handleEvent, false);
|
|
||||||
break;
|
|
||||||
/*case "INPUT":
|
|
||||||
|
|
||||||
elm.className += ((elm.className.length > 0) ? " " : "") + "link-target-finder-selected";
|
|
||||||
elm.addEventListener("click", handleEvent, false);
|
|
||||||
break;*/
|
|
||||||
case "LINK":
|
|
||||||
|
|
||||||
elm.className += ((elm.className.length > 0) ? " " : "") + "link-target-finder-selected";
|
|
||||||
elm.addEventListener("click", handleEvent, false);
|
|
||||||
break;
|
|
||||||
case "OPTION":
|
|
||||||
|
|
||||||
elm.className += ((elm.className.length > 0) ? " " : "") + "link-target-finder-selected";
|
|
||||||
elm.addEventListener("click", handleEvent, false);
|
|
||||||
break;
|
|
||||||
case "SELECT":
|
|
||||||
|
|
||||||
elm.className += ((elm.className.length > 0) ? " " : "") + "link-target-finder-selected";
|
|
||||||
elm.addEventListener("click", handleEvent, false);
|
|
||||||
break;
|
|
||||||
case "TABLE":
|
|
||||||
|
|
||||||
elm.className += ((elm.className.length > 0) ? " " : "") + "link-target-finder-selected";
|
|
||||||
elm.addEventListener("click", handleEvent, false);
|
|
||||||
break;
|
|
||||||
case "TEXTAREA":
|
|
||||||
elm.className += ((elm.className.length > 0) ? " " : "") + "link-target-finder-selected";
|
|
||||||
elm.addEventListener("click", handleEvent, false);
|
|
||||||
break;
|
|
||||||
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
}
|
|
||||||
//----------------------------------------------------------------
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
}
|
|
||||||
|
|
||||||
|
|
||||||
};
|
|
||||||
|
|
||||||
//rylan
|
|
||||||
function handleEvent(e) {
|
|
||||||
var targ;
|
|
||||||
if (!e) {
|
|
||||||
var e = window.event;
|
|
||||||
}
|
|
||||||
if (e.target) {
|
|
||||||
targ = e.target;
|
|
||||||
}
|
|
||||||
else if (e.srcElement) {
|
|
||||||
targ = e.srcElement;
|
|
||||||
}
|
|
||||||
|
|
||||||
//---------------------------------------------------------------------
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
//_____________________________________________________________________
|
|
||||||
|
|
||||||
var taginfo = new Array();
|
|
||||||
|
|
||||||
taginfo[0] = targ.tagName;
|
|
||||||
var countr;
|
|
||||||
//Feel free to change this to a for each...
|
|
||||||
switch (taginfo[0]) {
|
|
||||||
//All of these cases need null checks for each attribute.
|
|
||||||
|
|
||||||
case "A":
|
|
||||||
taginfo[1] = targ.href;
|
|
||||||
|
|
||||||
break;
|
|
||||||
case "BUTTON":
|
|
||||||
taginfo[1] = targ.name;
|
|
||||||
taginfo[2] = targ.type;
|
|
||||||
taginfo[3] = targ.value;
|
|
||||||
taginfo[4] = targ.form;
|
|
||||||
|
|
||||||
break;
|
|
||||||
case "FORM":
|
|
||||||
taginfo[1] = targ.name;
|
|
||||||
taginfo[2] = targ.length;
|
|
||||||
taginfo[3] = targ.target;
|
|
||||||
taginfo[4] = targ.action;
|
|
||||||
|
|
||||||
break;
|
|
||||||
case "IMG":
|
|
||||||
taginfo[1] = targ.name;
|
|
||||||
taginfo[2] = targ.src;
|
|
||||||
|
|
||||||
break;
|
|
||||||
/*case "INPUT":
|
|
||||||
taginfo[1] = targ.name;
|
|
||||||
taginfo[2] = targ.type;
|
|
||||||
taginfo[3] = targ.value;
|
|
||||||
|
|
||||||
break;*/
|
|
||||||
case "LINK":
|
|
||||||
taginfo[1] = targ.href;
|
|
||||||
taginfo[2] = targ.type;
|
|
||||||
taginfo[3] = targ.charset;
|
|
||||||
|
|
||||||
break;
|
|
||||||
case "OPTION":
|
|
||||||
taginfo[1] = targ.text;
|
|
||||||
taginfo[2] = targ.value;
|
|
||||||
taginfo[3] = targ.index;
|
|
||||||
|
|
||||||
break;
|
|
||||||
case "SELECT":
|
|
||||||
taginfo[1] = targ.type;
|
|
||||||
taginfo[2] = targ.name;
|
|
||||||
taginfo[3] = targ.size;
|
|
||||||
|
|
||||||
break;
|
|
||||||
case "TABLE":
|
|
||||||
taginfo[1] = targ.summary;
|
|
||||||
taginfo[2] = targ.caption;
|
|
||||||
|
|
||||||
break;
|
|
||||||
case "TEXTAREA":
|
|
||||||
taginfo[1] = targ.name;
|
|
||||||
taginfo[2] = targ.type;
|
|
||||||
taginfo[3] = targ.value;
|
|
||||||
|
|
||||||
break;
|
|
||||||
|
|
||||||
}
|
|
||||||
|
|
||||||
|
|
||||||
if(!taginfo[1]){
|
|
||||||
taginfo[1]= "null";
|
|
||||||
}
|
|
||||||
if(!taginfo[2]){
|
|
||||||
taginfo[2]= "null";
|
|
||||||
}
|
|
||||||
if(!taginfo[3]){
|
|
||||||
taginfo[3]= "null";
|
|
||||||
}
|
|
||||||
if(!taginfo[4]){
|
|
||||||
taginfo[4]= "null";
|
|
||||||
}
|
|
||||||
|
|
||||||
|
|
||||||
/*
|
|
||||||
var positionFind = content.document.getElementsByTagName(taginfo[0]);
|
|
||||||
for (var i = 0; i < positionFind.length; ++i) {
|
|
||||||
if (targ = positionFind[i]){
|
|
||||||
taginfo[5] = i;
|
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
|
// Find all elements attributes and add a listener
|
||||||
|
// -----------------------------------------------------------
|
||||||
|
// Add author(s) to this section. Who did this? David and Peter?
|
||||||
|
for ( var i = 0; i < all.length; ++i) {
|
||||||
|
// Define the classname variable
|
||||||
|
elm = all[i];
|
||||||
|
// deleted local call to new array info
|
||||||
|
var validtags = [ "A", "BUTTON", "FORM", "IMG", "INPUT",
|
||||||
|
"LINK", "OPTION", "SELECT", "TABLE", "TEXTAREA" ];
|
||||||
|
// Add a click event listener to all the valid tags.
|
||||||
|
if (validtags.indexOf(all[i].tagName) < 0)
|
||||||
|
continue;
|
||||||
|
|
||||||
|
info[0] = all[i].tagName;
|
||||||
|
|
||||||
|
// Feel free to change this to a for each...
|
||||||
|
if (recordingx) {
|
||||||
|
switch (info[0]) {
|
||||||
|
// All of these cases need null checks for each attribute.
|
||||||
|
case "INPUT":
|
||||||
|
|
||||||
|
elm.className += ((elm.className.length > 0) ? " " : "")
|
||||||
|
+ "link-target-finder-selected";
|
||||||
|
elm.addEventListener("keyup", handleType, false);
|
||||||
|
break;
|
||||||
|
case "A":
|
||||||
|
|
||||||
|
elm.className += ((elm.className.length > 0) ? " " : "")
|
||||||
|
+ "link-target-finder-selected";
|
||||||
|
elm.addEventListener("click", handleEvent, false);
|
||||||
|
break;
|
||||||
|
case "BUTTON":
|
||||||
|
|
||||||
|
elm.className += ((elm.className.length > 0) ? " " : "")
|
||||||
|
+ "link-target-finder-selected";
|
||||||
|
elm.addEventListener("click", handleEvent, false);
|
||||||
|
break;
|
||||||
|
case "FORM":
|
||||||
|
|
||||||
|
elm.className += ((elm.className.length > 0) ? " " : "")
|
||||||
|
+ "link-target-finder-selected";
|
||||||
|
elm.addEventListener("click", handleEvent, false);
|
||||||
|
break;
|
||||||
|
case "IMG":
|
||||||
|
|
||||||
|
elm.className += ((elm.className.length > 0) ? " " : "")
|
||||||
|
+ "link-target-finder-selected";
|
||||||
|
elm.addEventListener("click", handleEvent, false);
|
||||||
|
break;
|
||||||
|
/*
|
||||||
|
* case "INPUT":
|
||||||
|
*
|
||||||
|
* elm.className += ((elm.className.length > 0) ? " " : "") +
|
||||||
|
* "link-target-finder-selected";
|
||||||
|
* elm.addEventListener("click", handleEvent, false); break;
|
||||||
|
*/
|
||||||
|
case "LINK":
|
||||||
|
|
||||||
|
elm.className += ((elm.className.length > 0) ? " " : "")
|
||||||
|
+ "link-target-finder-selected";
|
||||||
|
elm.addEventListener("click", handleEvent, false);
|
||||||
|
break;
|
||||||
|
case "OPTION":
|
||||||
|
|
||||||
|
elm.className += ((elm.className.length > 0) ? " " : "")
|
||||||
|
+ "link-target-finder-selected";
|
||||||
|
elm.addEventListener("click", handleEvent, false);
|
||||||
|
break;
|
||||||
|
case "SELECT":
|
||||||
|
|
||||||
|
elm.className += ((elm.className.length > 0) ? " " : "")
|
||||||
|
+ "link-target-finder-selected";
|
||||||
|
elm.addEventListener("click", handleEvent, false);
|
||||||
|
break;
|
||||||
|
case "TABLE":
|
||||||
|
|
||||||
|
elm.className += ((elm.className.length > 0) ? " " : "")
|
||||||
|
+ "link-target-finder-selected";
|
||||||
|
elm.addEventListener("click", handleEvent, false);
|
||||||
|
break;
|
||||||
|
case "TEXTAREA":
|
||||||
|
elm.className += ((elm.className.length > 0) ? " " : "")
|
||||||
|
+ "link-target-finder-selected";
|
||||||
|
elm.addEventListener("click", handleEvent, false);
|
||||||
|
break;
|
||||||
|
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
}
|
||||||
|
// ----------------------------------------------------------------
|
||||||
|
|
||||||
}
|
}
|
||||||
alert(taginfo[5]);*/
|
|
||||||
|
};
|
||||||
|
|
||||||
|
// rylan
|
||||||
var contents = taginfo.join(' :: ')+"\n";
|
function handleEvent(e) {
|
||||||
|
var targ;
|
||||||
io.appendPath(path, window.content.location.href+"\n");
|
if (!e) {
|
||||||
|
var e = window.event;
|
||||||
|
}
|
||||||
|
if (e.target) {
|
||||||
|
targ = e.target;
|
||||||
|
} else if (e.srcElement) {
|
||||||
|
targ = e.srcElement;
|
||||||
|
}
|
||||||
|
|
||||||
|
// ---------------------------------------------------------------------
|
||||||
|
|
||||||
|
// _____________________________________________________________________
|
||||||
|
|
||||||
|
var taginfo = new Array();
|
||||||
|
|
||||||
|
taginfo[0] = targ.tagName;
|
||||||
|
var countr;
|
||||||
|
// Feel free to change this to a for each...
|
||||||
|
switch (taginfo[0]) {
|
||||||
|
// All of these cases need null checks for each attribute.
|
||||||
|
|
||||||
|
case "A":
|
||||||
|
taginfo[1] = targ.href;
|
||||||
|
|
||||||
|
break;
|
||||||
|
case "BUTTON":
|
||||||
|
taginfo[1] = targ.name;
|
||||||
|
taginfo[2] = targ.type;
|
||||||
|
taginfo[3] = targ.value;
|
||||||
|
taginfo[4] = targ.form;
|
||||||
|
|
||||||
|
break;
|
||||||
|
case "FORM":
|
||||||
|
taginfo[1] = targ.name;
|
||||||
|
taginfo[2] = targ.length;
|
||||||
|
taginfo[3] = targ.target;
|
||||||
|
taginfo[4] = targ.action;
|
||||||
|
|
||||||
|
break;
|
||||||
|
case "IMG":
|
||||||
|
taginfo[1] = targ.name;
|
||||||
|
taginfo[2] = targ.src;
|
||||||
|
|
||||||
|
break;
|
||||||
|
/*
|
||||||
|
* case "INPUT": taginfo[1] = targ.name; taginfo[2] = targ.type;
|
||||||
|
* taginfo[3] = targ.value;
|
||||||
|
*
|
||||||
|
* break;
|
||||||
|
*/
|
||||||
|
case "LINK":
|
||||||
|
taginfo[1] = targ.href;
|
||||||
|
taginfo[2] = targ.type;
|
||||||
|
taginfo[3] = targ.charset;
|
||||||
|
|
||||||
|
break;
|
||||||
|
case "OPTION":
|
||||||
|
taginfo[1] = targ.text;
|
||||||
|
taginfo[2] = targ.value;
|
||||||
|
taginfo[3] = targ.index;
|
||||||
|
|
||||||
|
break;
|
||||||
|
case "SELECT":
|
||||||
|
taginfo[1] = targ.type;
|
||||||
|
taginfo[2] = targ.name;
|
||||||
|
taginfo[3] = targ.size;
|
||||||
|
|
||||||
|
break;
|
||||||
|
case "TABLE":
|
||||||
|
taginfo[1] = targ.summary;
|
||||||
|
taginfo[2] = targ.caption;
|
||||||
|
|
||||||
|
break;
|
||||||
|
case "TEXTAREA":
|
||||||
|
taginfo[1] = targ.name;
|
||||||
|
taginfo[2] = targ.type;
|
||||||
|
taginfo[3] = targ.value;
|
||||||
|
|
||||||
|
break;
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
|
if (!taginfo[1]) {
|
||||||
|
taginfo[1] = "null";
|
||||||
|
}
|
||||||
|
if (!taginfo[2]) {
|
||||||
|
taginfo[2] = "null";
|
||||||
|
}
|
||||||
|
if (!taginfo[3]) {
|
||||||
|
taginfo[3] = "null";
|
||||||
|
}
|
||||||
|
if (!taginfo[4]) {
|
||||||
|
taginfo[4] = "null";
|
||||||
|
}
|
||||||
|
|
||||||
|
/*
|
||||||
|
* var positionFind = content.document.getElementsByTagName(taginfo[0]);
|
||||||
|
* for (var i = 0; i < positionFind.length; ++i) { if (targ =
|
||||||
|
* positionFind[i]){ taginfo[5] = i;
|
||||||
|
* } } alert(taginfo[5]);
|
||||||
|
*/
|
||||||
|
|
||||||
|
var contents = taginfo.join(' :: ') + "\n";
|
||||||
|
|
||||||
|
io.appendPath(path, window.content.location.href + "\n");
|
||||||
io.appendPath(path, contents);
|
io.appendPath(path, contents);
|
||||||
|
|
||||||
e.cancelBubble = true;
|
|
||||||
};
|
|
||||||
|
|
||||||
}();
|
e.cancelBubble = true;
|
||||||
function createFile() {
|
}
|
||||||
|
;
|
||||||
alert("created File");
|
|
||||||
var file1 = Components.classes["@mozilla.org/file/local;1"].createInstance(Components.interfaces.nsILocalFile);
|
|
||||||
file1.initWithPath(path);
|
|
||||||
//alert("create file nullcheck" +file1.toString());
|
|
||||||
var foStream = Components.classes["@mozilla.org/network/file-output-stream;1"].createInstance(Components.interfaces.nsIFileOutputStream);
|
|
||||||
// use 0x02 | 0x10 to open file for appending.
|
|
||||||
foStream.init(file1, 0x02 | 0x08 | 0x20, 438, 0);
|
|
||||||
var converter = Components.classes["@mozilla.org/intl/converter-output-stream;1"].
|
|
||||||
createInstance(Components.interfaces.nsIConverterOutputStream);
|
|
||||||
converter.init(foStream, "UTF-8", 0, 0);
|
|
||||||
|
|
||||||
converter.close(); // this closes foStream
|
|
||||||
}
|
|
||||||
|
|
||||||
function appendFile(contents) {
|
}();
|
||||||
|
|
||||||
alert("appended File");
|
|
||||||
var file1 = Components.classes["@mozilla.org/file/local;1"].createInstance(Components.interfaces.nsILocalFile);
|
|
||||||
file1.initWithPath(path);
|
|
||||||
//alert("append file nullcheck: "+file1.toString());
|
|
||||||
var foStream = Components.classes["@mozilla.org/network/file-output-stream;1"].createInstance(Components.interfaces.nsIFileOutputStream);
|
|
||||||
// use 0x02 | 0x10 to open file for appending.
|
|
||||||
foStream.init(file1, 0x02 | 0x10, 438, 0);
|
|
||||||
var converter = Components.classes["@mozilla.org/intl/converter-output-stream;1"].
|
|
||||||
createInstance(Components.interfaces.nsIConverterOutputStream);
|
|
||||||
converter.init(foStream, "UTF-8", 0, 0);
|
|
||||||
|
|
||||||
converter.writeString(contents);
|
|
||||||
converter.close();
|
|
||||||
}
|
|
||||||
function handleType(e) {
|
function handleType(e) {
|
||||||
var targ;
|
var targ;
|
||||||
if (!e) {
|
if (!e) {
|
||||||
var e = window.event;
|
var e = window.event;
|
||||||
}
|
}
|
||||||
if (e.target) {
|
if (e.target) {
|
||||||
targ = e.target;
|
targ = e.target;
|
||||||
}
|
} else if (e.srcElement) {
|
||||||
else if (e.srcElement) {
|
targ = e.srcElement;
|
||||||
targ = e.srcElement;
|
}
|
||||||
}
|
alert("Type Changed");
|
||||||
alert("Type Changed");
|
e.cancelBubble = true;
|
||||||
e.cancelBubble = true;
|
|
||||||
}
|
}
|
||||||
|
Reference in New Issue
Block a user