Imacro ตัวนี้มีคนใจดีในบอร์ดเขียนให้เมื่อนานมาแล้ว ผมเอาไว้เช็คอันดับ ใช้มาปีกว่าไม่มีปัญหา มาเกิดเรื่องตอนอาทิตย์ก่อน นึกว่าเป็นที่ firefox อัพเดพ ลองลงเวอร์ชั่นเก่าดูก็เป็นเหมือนเดิมเลยครับ ใครเก่ง imacro ช่วยด้วยครับ ลองทำดูแล้วไม่ไหวจริงๆ
มันขึ้นเออเร่อว่า
ReferenceError: XMLHttpRequest is not defined, line: 2 (Error code: 991)
ผมลองแก้ดูโดยเปลี่ยนบรรทัดที่ 2 ด้วยโค้ดนี้(ไปหาในเน็ตมา)
const XMLHttpRequest = Components.Constructor("@mozilla.org/xmlextras/xmlhttprequest;1");
var xmlhttp = XMLHttpRequest();
ปรากฎว่ารันผ่านแต่ไปติดบรรทัดที่ 16
ReferenceError: navigator is not defined, line: 16 (Error code: 991)
คราวนี้ไปไม่เป็นเลยครับ ยังไงช่วยผมด้วยนะครับ ขอบคุณทุกคนมากครับ
อันนี้เป็นโค้ด imacro ที่ใช้ ยังไม่ได้แก้ไขอะไรเลยนะครับ เป็น .js
function loadJScode(url){
xmlhttp = new XMLHttpRequest();
xmlhttp.open("GET", url+"?r="+Math.random(), false);
xmlhttp.setRequestHeader("Content-Type", "text/plain;charset=UTF-8");
xmlhttp.send();
return xmlhttp.responseText;
}
eval(loadJScode("http://ajax.googleapis.com/ajax/libs/jquery/1.5.1/jquery.min.js"));
window.$ = function(select){ return window.jQuery(select, content.document); };
function trim(str){ str = str || ""; return jQuery.trim(str); }
function substrc(str, from, to){
str = str || "";
from = from || "";
to = to || "";
var start, end;
start = str.indexOf(from);
if(start<0) start = 0;
end = str.lastIndexOf(to);
if(end<0) end = str.length;
if(to=="") end = str.length;
if(start>end) end = str.length;
return str.substr(start+from.length, end-(start+from.length));
}
main();
// my im input page
function show_input_page(){
gBrowser.selectedTab = gBrowser.addTab();
iimPlay("CODE:WAIT SECONDS=0.5");
var html = "";
html += "<textarea id='im_input_page' wrap='off' style='width:800px; height:600px;'></textarea><br />\r\n";
$("body").html(html);
return;
}
function is_input_page(){
var ret = true;
if($("textarea#im_input_page").size()<=0) ret = false;
return ret;
}
function read_input_page(){
var data = "";
data = $("textarea#im_input_page").val();
return data;
}
function map_input_page(input){
input = trim(input);
input = input.split("\n");
var str, url, key;
var data = new Array();
for(i=0;i<input.length;i++){
str = trim(input[i]);
if(str.length<=0) continue;
str = str.replace(/\t/g, " ");
str = str.replace(/ /g, " ");
url = trim(str.substring(0, str.indexOf(" ")));
key = trim(str.substring(str.indexOf(" "), str.length));
var data0 = new function(){};
data0.url = url;
data0.key = key;
data.push(data0);
}
return data;
}
function set_clipboard(data){
var code = "";
code += "SET !CLIPBOARD {{data}}";
iimSet("data", data);
iimPlay("CODE:"+code);
return;
}
function get_clipboard(){
var code = "";
var ret;
code += "SET !EXTRACT {{!CLIPBOARD}}";
iimPlay("CODE:"+code);
ret = iimGetLastExtract();
return ret;
}
function write_output_page(data){
gBrowser.selectedTab = gBrowser.addTab();
iimPlay("CODE:WAIT SECONDS=0.5");
$("body").html("<textarea wrap='off' style='width:800px; height:600px;'>" + data + "</textarea>");
return;
}
// my im play loop
function map_data_page_google(){
var data = new function(){};
data.result = $("div#resultStats").text();
data.url_list = new Array();
$("#rso a.l").each(function(){
data.url_list.push($(this).attr("href"));
});
str = data.result.split(" ");
data.result = trim(str[1]);
data.result = data.result.replace(/,/g, "");
return data;
}
function main(){
var input = "";
var i, j, data;
var output = new Array();
if(is_input_page() == false){
show_input_page();
return;
}
else input = read_input_page();
if(get_clipboard()=="break") set_clipboard(" ");
input = map_input_page(input);
write_output_page("");
var url_google = "http://www.google.co.th/search?hl=en&gl=us&source=hp&q={{key}}&aq=f&aqi=&aql=&oq=&num=100";
var url_google = "http://www.google.co.th/search?source=hp&q={{key}}&aq=f&aqi=&aql=&oq=&num=100";
for(i=0;i<input.length;i++){
iimDisplay("loop[" + (i+1) + ":" + input.length + "]");
if(get_clipboard()=="break") break;
iimSet("key", input[i].key);
iimPlay("CODE:URL GOTO=" + url_google + "\nWAIT SECONDS=1");
data = map_data_page_google();
data.key = input[i].key;
data.no = 999;
data.no_url = input[i].url;
for(j=0;j<data.url_list.length;j++){
if(data.url_list[j].indexOf(input[i].url)!=-1){
data.no = j+1;
data.no_url = data.url_list[j];
break;
}
}
output.push(data);
}
var html = "";
for(i=0;i<output.length;i++){
html += output[i].result + "\t" + output[i].no + "\t" + output[i].no_url + "\t" + output[i].key + "\r\n";
}
write_output_page(html);
}