【问题标题】:CSS in Apps Script dialog boxApps 脚本对话框中的 CSS
【发布时间】:2014-08-30 04:32:39
【问题描述】:

我不是网络开发人员,过去我只使用过一次 CSS。使用 CSS 的流程是怎样的?这甚至可能吗?

var pointsSheet = SpreadsheetApp.openById('1o8_f063j1jYZjFEnI_P7uAztpnEAvQ6mc3Z1_Owa69Y');

//creates and shows an app with a label and password text box
function doGet() {
  var app = UiApp.createApplication();

  var mygrid = app.createGrid(1, 2);
  mygrid.setWidget(0, 0, app.createLabel('Password:'));
  mygrid.setWidget(0, 1, app.createPasswordTextBox().setName("text"));

  var mybutton = app.createButton('Submit');

  var submitHandler = app.createServerClickHandler('getResults');
  submitHandler.addCallbackElement(mygrid);
  mybutton.addClickHandler(submitHandler);

  var mypanel = app.createVerticalPanel();
  mypanel.add(mygrid);
  mypanel.add(mybutton);
  app.add(mypanel);

  return app; //UNCOMMENT WHEN DEPLOYING APP
}

//obtains data based on password entered by user and outputs their info
function getResults(eventInfo) {
  var app = UiApp.getActiveApplication();
  var password = eventInfo.parameter.text;

  var passwordCheckRange = pointsSheet.getRange("B34:C34").getValues();

  if (passwordCheckRange == null) {
    return app;
  }

  var name;
  var studentFound = false;
  for(var i = 0; i < passwordCheckRange.length; i++) {//obtains the name of the student
    if(passwordCheckRange[i][1] == password) {
      name = passwordCheckRange[i][0];
      studentFound = true;
      break;
    }
  }

  var studentRecordRange = pointsSheet.getRange("B3:CZ29").getValues();
  var headingRange = pointsSheet.getRange("B1:CZ2").getValues();

  if (studentRecordRange == null) {
    return app;
  }

  var studentRecord;
  for(var i = 0; i < studentRecordRange.length; i++) {
    if(studentRecordRange[i][0] == name)
      studentRecord = studentRecordRange[i]; //gets the row of the student (B? to AY?)
  }

  var stringRecord = "";
  for(var i = headingRange[1].length-1; i >= 7; i--) {
    if ((studentRecord[i] == "" || studentRecord[i] == "STOP" || studentRecord[i] == "ALLOW") && headingRange[0][i] != "")
      stringRecord += headingRange[1][i] + ": " + headingRange[0][i] + "XP" + "<br>";
  }

  var mygrid = app.createGrid(2, 1);
  mygrid.setWidget(0, 0, app.createLabel('INCOMPLETE CHALLENGES'));
  mygrid.setWidget(1, 0, app.createHTML(stringRecord));

  var mypanel = app.createVerticalPanel();
  mypanel.add(mygrid);
  app.add(mypanel);

  return app;
}

【问题讨论】:

    标签: html css google-apps-script


    【解决方案1】:

    编辑:此答案适用于现已弃用的 UIApp 服务,该服务已于 2014 年弃用。

    我所做的是,

    1. 在同一个项目中,我创建了另一个脚本文件并将其命名为 CSS.gs

    2. 我的 CSS.gs 将有以下几行,

      var css={}; css.Labels = { fontFamily:'Verdana', fontSize:'12px', width: '100', marginTop: '5'}; css.Inputs = { fontFamily:'Verdana', fontSize:'12px', width: '150'}; css.TextArea = { fontFamily:'Verdana', fontSize:'12px', width: '900', height: '50'}; css.PutBorder = {borderStyle: 'solid'};

    3. 我将使用 .setStyleAttributes() 将这些样式应用于应用程序

      eg::app.createLabel('Password:').setStyleAttributes(css.Inputs)

    有 setStyleAttribute 和 setStyleAttribute's'。请不要混淆。 GS 并不支持所有的 css 属性。您可以找到支持的样式列表here

    【讨论】:

      【解决方案2】:

      “模板化 HTML”可用于包含单独的 CSS 文件。

      可以将 CSS 放入单独的 Apps Script HTML 文件中。 CSS 在技术上只是 HTML 中的 &lt;style&gt; 标签。 因此,将您的 CSS 放入 HTML 文件将在代码编辑器中正确显示。 带有 CSS 的 HTML 文件可以包含在您的主 HTML 文件中。在 Apps Script HTML 文件中,将您的 CSS 放在 &lt;style&gt; 标记内。

      <style>
      
      .bigHeader {
        color:#808000;
        text-align:center;
        font-family:"Times New Roman";
        font-size:50px;
        background-color:#66CDAA;
        margin-left:1%;
        }
      
      </style>
      

      然后在你的主 HTML 文件中,放入一个 scriptlet 标签:

      <?!= include('Name_Of_HTML_File_With_CSS'); ?>
      

      在您的主 .gs 代码文件中,您需要一个名为 include 的函数

      function include(filename) {
        return HtmlService.createHtmlOutputFromFile(filename).getContent();
      };
      

      另请参阅这个 stackoverflow 问题:Google app script : Separating HTML and CSS

      【讨论】:

      • 哦,哦,为什么有两个好人和GUNS在一起......顺便说一句,我是你们俩的忠实粉丝......
      猜你喜欢
      • 1970-01-01
      • 2016-05-26
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2019-02-15
      相关资源
      最近更新 更多