IE宏脚本 - 如何阅读使用javascript本地文件的.text
-
11-09-2019 - |
题
有就是这个 IMacro 脚本工具,如果你想自动化一些网站 通过使用JavaScript的网页访问。
我想有我的JavaScript从本地的.txt文件阅读 (不是.cvs文件和格式不正确。我想它可能是搜索 用正则表达式。) 并基于该阅读,脚本将做一些工作在iMacros的..(例如调用一些网站 URL等。)
难道你们有什么想法,这可怎么办呢?我做的一切 地方,这是我的本地浏览器从我的本地硬盘驱动器中读取。应该 以某种方式可能..但如何?
解决方案
是的,你可以用iMacros都做,但你需要从javascript.js文件调用它。加载的内容作为一个块,那么你可以使用JavaScript的indexOf方法查找文本字符串和if语句执行。 文本示例(您的txt文件中): “世界,你好!”
var load;
load = "CODE:";
load += "set !extract null" + "\n";
load += "SET !DATASOURCE text.txt" + "\n";
load += "SET !DATASOURCE_COLUMNS 1" + "\n";
load += "SET !DATASOURCE_LINE 1" + "\n";
load += "SET !extract {{!col1}}" + "\n";
iimPlay(load);
var s=iimGetLastExtract(0);
var index=s.indexOf("w");
if (index>0){
do your code;
}
其他提示
您必须使用XML HTTP请求作为文件的ActiveX对象不被任何其他浏览器比IE支撑。
此代码,而读取本地TXT或任何其他文件太多工作完全正常。
f();
function f()
{
var allText =[];
var allTextLines = [];
var Lines = [];
var txtFile = new XMLHttpRequest();
txtFile.open("GET", "file://D:/test.csv", true);
allText = txtFile.responseText;
//allTextLines = allText.split(/\r\n|\n/);//splits ur file line by line.
//alert(allTextLines);
txtFile.onreadystatechange = function()
{
if (txtFile.readyState == 4)
{
// Makes sure it's found the file.
allText = txtFile.responseText;
allTextLines = allText.split(/\r\n|\n/);
alert(allText);
} else { //alert("Didn't work");
}
}
txtFile.send(null)
}
我解决它在老式的方式 - 通过线读取行:
function read_file(path) {
var content = '', l = 1, f, res = '';
do {
content += res && (res + "\n");
f = "CODE: "+"\n";
f += "SET !EXTRACT null" + "\n";
f += "SET !DATASOURCE \""+path+"\" "+"\n";
f += "SET !DATASOURCE_COLUMNS 1" + "\n";
f += "SET !DATASOURCE_LINE " + l + "\n";
f += "SET !EXTRACT {{!col1}}" + "\n";
iimPlay(f);
res = iimGetLastExtract();
l++;
} while (res && res != '#EANF#');
return content;
}
var file_conten = read_file('/home/user/iMacros/templates/some_file.txt');
希望这会帮助未来的读者^ _ ^
在Firefox可以直接读取该文件。
在 HTTPS的详细信息://developer.mozilla。组织/ EN-US /加载项/ Code_snippets / File_I_O#Line_by_line
按行读入文件中的行使用以下
var FileUtils = Components.utils.import("resource://gre/modules/FileUtils.jsm").FileUtils;
FileLocation = "C:\\myFile.txt"
var file = new FileUtils.File( FileLocation );
// open an input stream from file
var istream = Components.classes["@mozilla.org/network/file-input-stream;1"].createInstance(Components.interfaces.nsIFileInputStream);
istream.init(file, 0x01, 0444, 0);
istream.QueryInterface(Components.interfaces.nsILineInputStream);
// read lines into array
var line = {}, lines = [], hasmore;
do {
hasmore = istream.readLine(line);
lines.push(line.value);
} while(hasmore);
istream.close();
// do something with read data
alert(lines);
不隶属于 StackOverflow