如何从 Google Apps 脚本输出 HTML?

x-x*_*x-x 3 html web-applications google-apps-script

我有这个简单的脚本来获取页面并按原样输出它。但是,浏览器无法将输出识别为 HTML,而是将其显示为文本。

function doGet(e) {
  var url = e.queryString || "";
  if (url != "") {
    return getPage(url);
  }  
  return "not found";
}

function test() {
  return getPage("www.google.com");
}

function getPage(url) {
  var options = {
    headers : {'Cache-Control' : 'max-age=0'}
  };
  var response = UrlFetchApp.fetch(url, options);
  var html = response.getContent();
  return ContentService.createTextOutput(html).setMimeType(ContentService.MimeType.HTML);
}
Run Code Online (Sandbox Code Playgroud)

怎么了?如何将获取的页面输出为 HTML?

aza*_*aza 6

在您的函数中使用此返回getPage()

var html = response.getContentText();
return HtmlService.createHtmlOutput(html);
Run Code Online (Sandbox Code Playgroud)

但是,不要期望获取的页面“不变” - HTML 服务将清理内容,这可能会导致某些页面功能被删除或无法工作。

另请记住,您的 Web 应用程序是在iframe- 您获取的页面可能不允许其在 iframe 中运行或使用框架突破 JavaScript 中呈现的,这可能会导致您的用户从您的 Web 应用程序重定向到实际的 url所获取页面的。

但我必须问:您确定必须以这种方式呈现外部页面吗?简单的还不够吗<a href="..." target="_blank">link to external page (will open in a new tab/window)</a>