Показать сообщение отдельно
  #4 (permalink)  
Старый 05.12.2014, 13:55
Профессор
Отправить личное сообщение для jsnb Посмотреть профиль Найти все сообщения от jsnb
 
Регистрация: 15.03.2014
Сообщений: 561

Сообщение от korodron
И можете еще подсказать, как также передавать параметр нужного сайта и параметр url страницы?
Допишите в doGet параметр e, вот так:
function doGet(e) {

И можете внутри нее получать параметры так:
var param1 = e.parameter.par1;
var param2 = e.parameter.par2;

В URL они будут выглядеть так:
.../exec?par1=aaa&par2=bbb

Сообщение от korodron
Но новые поля даже не появляются в обновленном скрипте
Странно, по идее должно работать. Вы код сохраняли и задеплоили? Сейчас проверил у себя, работает. Вот код, который тестил у себя:
function doGet(e) {
  var app = UiApp.createApplication();
  
  app.add(app.createHTML("Page title:<br>"));
  var textBox = app.createTextBox().setId('pageTitle').setName('pageTitle');
  app.add(textBox);
  
  app.add(app.createHTML("<br>HTML:<br>"));
  
  var textArea = app.createTextArea().setId('htmlText').setName('htmlText');
  app.add(textArea);
  
  app.add(app.createHTML("<br>"));
  
  
  app.add(app.createHTML("Page url:<br>"));
  var pageUrlTextBox = app.createTextBox().setId('pageUrl').setName('pageUrl');
  app.add(pageUrlTextBox);
  
  app.add(app.createHTML("Site:<br>"));
  var siteHrefTextBox = app.createTextBox().setId('siteHref').setName('siteHref');
  app.add(siteHrefTextBox);
  
  app.add(app.createHTML("<br>"));
  
  var button = app.createButton('Create page');
  app.add(button);
  
  var label = app.createLabel('The button was clicked.')
                 .setId('statusLabel')
                 .setVisible(false);
  app.add(label);
  
  var handler = app.createServerHandler('myClickHandler');
  handler.addCallbackElement(label);
  handler.addCallbackElement(textBox);
  handler.addCallbackElement(textArea);
  handler.addCallbackElement(pageUrlTextBox);
  handler.addCallbackElement(siteHrefTextBox);
  button.addClickHandler(handler);

  return app;
}

function myClickHandler(e) {
  var app = UiApp.getActiveApplication();

  var pageTitle = e.parameter.pageTitle;
  var html = e.parameter.htmlText;
  var siteHref = e.parameter.siteHref;
  var pageUrl = e.parameter.pageUrl;
  
  createDemoPage(pageTitle, html, pageUrl, siteHref);
  
  var label = app.getElementById('statusLabel');
  label.setText('new page created: ' + pageTitle);
  label.setVisible(true);
  
  app.close();
  return app;
}

function createDemoPage(pageTitle, html, pageUrl, siteHref) {
  var site = SitesApp.getSiteByUrl("https://sites.google.com/site/"+siteHref+"/");
  site.createWebPage(pageTitle, pageUrl, html);
};


Сообщение от korodron
Это будет верным вариантом?
В принципе, должно работать, если права доступа к сайтам у приложения есть. У меня по крайней мере работает.

Последний раз редактировалось jsnb, 05.12.2014 в 13:58.
Ответить с цитированием