我有这个简单的脚本来获取页面并输出它不变。但是,浏览器不会将输出识别为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);
}
出了什么问题?如何将获取的页面输出为HTML?
答案 0 :(得分:3)
请在getPage()
函数中使用此返回值:
var html = response.getContentText();
return HtmlService.createHtmlOutput(html);
但是,不要指望获取的页面“未更改” - HTML服务将清理内容,这可能会导致某些页面功能被删除或无法正常工作。
另请注意,您的网络应用程序是在iframe
内呈现的 - 您提取的网页可能不允许在iframe中运行或使用框架突破javascript,这可能会导致您的用户被重定向从您的网络应用程序到获取页面的实际网址。
我必须问一下:你确定你必须以这种方式呈现外部页面吗?简单的<a href="..." target="_blank">link to external page (will open in a new tab/window)</a>
不够吗?