Привет, у меня есть много способов узнать, как заполнить форму google с текущей датой в поле ввода даты.
Лучшее, что я придумал, это создать форму для предварительной заливки и использовать URL-адрес формы предпрограммы google и динамически изменить строку url, чтобы вставить текущую дату в качестве одного из аргументов. Я попытался создать страницу (скрипт приложения Google) со ссылкой на ссылку, которую я пытаюсь установить ссылку href для новой строки, содержащей текущий аргумент даты, но не имеет успеха. У меня уже есть функция (в коде.gs), которая принимает URL-форму google и правильно ее обрабатывает, чтобы ввести текущую дату в строку url в качестве одного из аргументов. Но установка этой новой строки url в ссылке href не работает.
Можете ли вы посоветовать (примеры будут замечательные) по этому или более простому способу предварительной заполнению текущей даты в форме Google. Самое ценное.
/* NOTE!!! Make a copy of this file - Choose "File" "Make a copy..."
* Then publish this as a Web App -
* To Publish Choose the menu item "Publish" then "Deploy as Web App"
* to see the Web App click the link named - "Test web app for your latest code"
*
*/
var EXAMPLE_OF_GLOBAL_VARIABLE;//Use all capital letters so that you know it is a global
var n3;
function doGet() {
var template = HtmlService.createTemplateFromFile('Index');
// Build and return HTML in IFRAME sandbox mode.
return template.evaluate()
.setTitle('Web App Window Title')
.setSandboxMode(HtmlService.SandboxMode.IFRAME);
};
//Attribute - This code is modified from the Google Help for a web app
//Help - Welcome Screen - Web App
function getFolderContents() {
var contents,file,files,folderId,numFiles,topFolder;
folderId = 'root'; //Set this as the default for an example
topFolder;
contents = {
children: []
};
if (folderId == 'root') {
topFolder = DriveApp.getRootFolder();
} else {
// May throw exception if the folderId is invalid or app
// doesn't have permission to access.
topFolder = DriveApp.getFolderById(folderId);
}
contents.rootName = topFolder.getName() + '/';
files = topFolder.getFiles();
numFiles = 0;
while (files.hasNext() && numFiles < 20) {
file = files.next();
contents.children.push(file.getName());
numFiles++;
};
return contents;
};
function getnowx() {
var today = new Date();
var dd = today.getDate();
var mm = today.getMonth()+1; //January is 0!
var yyyy = today.getFullYear();
if(dd<10) {
dd = '0'+dd
} ;
if(mm<10) {
mm = '0'+mm
};
today = yyyy + '-' + mm + '-' + dd;
var n ='https://docs.google.com/forms/d/e/1FAIpQLSd5By6kDoO_T4WZWk5VjKs6WD5RVuC_06RX7jDv19jS-KR8sg/viewform?usp=pp_url&entry.1374707830=xxxx-xx-xx&entry.406706983&entry.1232084117&entry.769389513&entry.104847992';
var n1 = n.replace("xxxx-xx-xx",today);
return n1;
};
мой раздел javascript
<script>
function updateDisplay(contents) {
var headingText = "Displaying contents for " + contents.rootName + "
folder:";
document.getElementById('main-heading').textContent = headingText;
for (var i = 0; i < contents.children.length; i++) {
var name = contents.children[i];
document.getElementById('results').insertAdjacentHTML('beforeend', '<div>'
+ name + '</div>');
}
function updateDisplay2(n5) {
var linkButton = document.getElementById("link-button");
linkButton.setAttribute('href', n5);
document.getElementById('link-button').textContent = linkText;
}
window.getTheData = function() {
google.script.run
.withSuccessHandler(updateDisplay)
.getFolderContents();
};
window.getnowx2 = function() {
google.script.run
.withSuccessHandler(updateDisplay2)
.getnowx();
}
</script>
Per Chance наткнулся на некоторый код в обмене стеками, и он сработал. Очень просто, просто не знал, как это сделать. Моя функция getnow использует URL-адрес предварительной заливки и строчную манипуляцию, чтобы вставить текущую дату, чтобы я мог автоматически получить форму Google с текущей датой.
function doGet() {
var url = getnowx();
return HtmlService.createHtmlOutput(
"<a href='" + url + "?page=1'>Mylabel</a> <br><a href='" + url + "?
page=1'>MyLABEL2</a>");
};
function getnowx() {
var today = new Date();
var dd = today.getDate();
var mm = today.getMonth()+1; //January is 0!
var yyyy = today.getFullYear();
if(dd<10) {
dd = '0'+dd
} ;
if(mm<10) {
mm = '0'+mm
};
today = yyyy + '-' + mm + '-' + dd;
var n = 'https://docs.google.com/forms/d/e/1FAIpQLSd5BykDoO_T4WZWk5VjKs6WD5xxC_06RX7jDv19jS-KvR8sg/viewform?usp=pp_url&entry.1374707830=xxxx-xx-xx&entry.406706983&entry.1232084117&entry.769389513&entry.104847992';
var n1 = n.replace("xxxx-xx-xx",today);
return n1;
};
Можете ли вы попробовать изменить его
window.getnowx2 = function() {
google.script.run
.withSuccessHandler(updateDisplay2)
.getnowx();
}
в
google.script.run
.withSuccessHandler(updateDisplay2)
.getnowx();
Причина в том, что в первом утверждении вы назначаете функцию переменной window.getnowx2
но не вызываете ее. Во втором утверждении вы на самом деле называете это. Извините, я не слишком уверен в этом, но кто-то более осведомленный будет решать это, если это не сработает.
url
а также снимокcode.gs