2016-12-14 13 views
0

Я использую Node.js для написания сценария, который будет циклически загружаться через загруженный html, чтобы найти некоторые элементы, а затем построить макрос, добавив их в команды. Я вызываю этот сценарий из другого макроса из браузера (вызывающий макрос также загружает html и помещает его в файл), я поставлю этот макрос на цикл. Проблема в том, что я не могу заставить скрипт исполняться. Я попытался использовать браузеру, и он сделал трюк, но он говорит, что fs.readFileSync() не является функцией. Я знаю о brfs, но он создает статическую запись в код, а файл Source.htm является динамическим и перезагружается с помощью различной информации. Так что я здесь в канаве. Я также прочитал все о browserify-fs, но ничего не делает. Следующий код - это в основном небольшой скрипт, который я написал, я не включил часть, которую генерирует браузер. Я также пропустил часть с созданием макроса, потому что это не имеет значения. Я должен сказать, что я нооб, и я много читал, чтобы дойти до этого, но в настоящее время я понятия не имею, как действовать дальше, и любая помощь будет принята с благодарностью!Как пользоваться браузером с помощью fs для загрузки html страницы и использования ее элементов в скрипте?

var fs = require('fs'); 
    var pageSource = fs.readFileSync('Source.htm', 'utf8').toString().split("\n"); 
    var idStrings = []; 
    var userIDs = []; 

    //getting string lines from page source array containing ids 
    for(i in pageSource){ 
     if(pageSource[i].includes("id=\\")){ 
      idStrings[i] = pageSource[i]; 
      } 
    } 

    //getting numbers from string lines using regex 
    for(i in tradeStrings){ 
     userIDs[i] = idStrings[i].replace(/^\D+|\D+$/g, ""); 
    } 

    //sorting just in case 
    userIDs.sort(function(a,b){return a - b}); 

    //building macro and executing it... 
+0

Нет, вы не можете использовать 'fs' через браузер. 'fs' является модулем только для Node.JS на стороне сервера. – arufian

ответ

0

По сути, веб-браузер не позволяет сценарию открывать произвольный файл на жестком диске. Это для безопасности пользователей - представьте, какой вредоносный веб-сайт мог бы сделать с полным доступом к файловой системе!

Вместо сохранения в файл, первый скрипт загружает ресурс в переменную javascript и анализирует его оттуда.

+0

Первый макрос - это то, что делает загрузка. После его завершения он вызывает сценарий, который я разместил, который извлекает некоторые части, а затем создает другой макрос с этими частями и запускает его. Может быть, другой скрипт очистит страницу, а затем передаст ее этому? Я не думаю, что это сработает. –

+0

Под макросом вы подразумеваете скрипт js, запущенный в веб-браузере? В чем причина отдельного скрипта, который передает загрузку, а не просто чтение ресурса из URL-адреса в вашем скрипте? – PMV

+0

Под макросом я подразумеваю IMacros, который является расширением, которое позволяет автоматизировать автоматизацию браузера, извините за то, что не очистите это! –