Google Apps脚本将根据表单响应创建公告

时间:2013-11-13 16:18:25

标签: google-apps-script google-spreadsheet-api google-sites

我正在尝试使用表单在我们的Google协作平台页面上创建新公告。表格要求帖子的标题和正文。表单还链接到电子表格。在表单中,a可以输入并显示在电子表格中。脚本中的控制台日志还显示段落中断。

Sites API似乎剥离并用空格替换它。例如,应该是2个段落,每个段落有一个句子,在公告中变成两个句子。如何在此脚本中创建的新公告中显示段落中断?任何帮助将非常感激。提前谢谢。

var posted = "POSTED";

for (var i = 0; i < data.length -1; ++i) { 

var timeStamp = data[i][0];  
var name = data[i][1];       
var title = data[i][2];
var body = data[i][3];
var status = data[i][4];

Logger.log(title);
Logger.log(body);
Logger.log(status);

if (status != posted) { 

  var url = 'myintranetsite.com'
  var page = SitesApp.getPageByUrl(url)

  // Got this code from another post, script won't fail in event of duplicate titles
  var announcements = page.getAnnouncements({ 
                                         includeDrafts: false,
                                         includeDeleted: false,
                                         search: title });

  if (announcements.length > 0) {
  title += ' (' + announcements.length + ')'; 

  var newPost = page.createAnnouncement(title, body);

2 个答案:

答案 0 :(得分:1)

是的,事实证明这是关于段落标记和替换特殊字符的问题。谢谢!

这里的代码用于替换表单响应中的新行char,并插入para标记。

var newBody = body.replace(/\n/g, '<br />');   // replaces new line with <br /> 

var htmlBody = "<p>";
htmlBody += newBody;
htmlBody += "<p />";

var newPost = page.createAnnouncement(title, htmlBody);

答案 1 :(得分:0)

我假设关于“段落”标记的问题。

正文应为HTML https://developers.google.com/apps-script/reference/sites/page#createAnnouncement(String,String)

我怀疑你想做一个查找和替换。

或者只是将HTML放入表单中。例如添加:

 "<p>"