У меня есть Google Sheets на диске GSuite, которым я владею. Этот Google Sheets имеет связанный файл сценария code.js. У меня также есть удаленный файл .js, который содержит функцию, которую я хочу выполнить на своем листе (в обычной ситуации эта функция просто находится в файле code.js).
Я создал изображения кнопок на листе, которые запускают сценарии в файле code.js. Когда я нажимаю кнопку, мой скрипт code.js выполняется успешно:
- кнопка запускает скрипт code.js, который извлекает удаленный js-файл через URL-адрес и сохраняет его в переменной (этот удаленный файл также может быть просто текстовым файлом, но для контроля моего OCD я назвал его .js)
- Я использую
console.log(variable)
, чтобы подтвердить, что действительно был получен весь файл .js.
- Я использую
eval(variable)
, но ничего не происходит
Если я вставлю вывод console.log(variable)
непосредственно в файл code.js, он будет работать как положено.
Является ли eval()
неправильным вызовом? Или это не так сильно, как я надеюсь?
function countStuffButton() { //Counts the number of current stuffs
var url = "http://my.website/js/countStuff.js";
var javascript = UrlFetchApp.fetch(url).getContentText();
console.log(javascript);
eval(javascript);
}
console.log
, что я получаю обратно:
function countStuff() {
// bunch of code that works when paste directly into code.js
}
Я надеюсь / ожидаю, что я смогу сохранить функцию JavaScript на сервере в файле .js, а затем извлечь содержимое функции, которая будет обрабатываться локально, в связанном сценарии code.js моих таблиц Google, в результате чего в Google Sheets, который является чистым «интерфейсным» скриптом создания и HTML-вызовами файлов, которыми я полностью владею и управляю на своем сервере.