Đối tượng HtmlOutput
có thể được phân phát qua một tập lệnh. Do những cân nhắc về bảo mật,
các tập lệnh không thể trực tiếp trả lại HTML cho trình duyệt. Thay vào đó, họ phải dọn dẹp vệ sinh để
không thể thực hiện hành động độc hại. Bạn có thể trả về HTML đã dọn dẹp như sau:
function doGet() { return HtmlService.createHtmlOutput('<b>Hello, world!</b>'); }
HtmlOutput
có thể bao gồm CSS và JavaScript đã nhúng. (Đây là tiêu chuẩn
JavaScript phía máy khách thao tác DOM, không phải Apps Script). Tất cả nội dung này
trong hộp cát bằng iframe
hộp cát. Để biết thêm thông tin, hãy xem hướng dẫn về các hạn chế trong dịch vụ HTML.Phương thức
Phương thức | Loại dữ liệu trả về | Mô tả ngắn |
---|---|---|
addMetaTag(name, content) | HtmlOutput | Thêm thẻ meta vào trang. |
append(addedContent) | HtmlOutput | Thêm nội dung mới vào nội dung của HtmlOutput này. |
appendUntrusted(addedContent) | HtmlOutput | Thêm nội dung mới vào nội dung của HtmlOutput này bằng cách sử dụng tính năng thoát theo ngữ cảnh. |
asTemplate() | HtmlTemplate | Trả về HtmlTemplate được HtmlOutput này hỗ trợ. |
clear() | HtmlOutput | Xoá nội dung hiện tại. |
getAs(contentType) | Blob | Trả về dữ liệu bên trong đối tượng này dưới dạng một blob được chuyển đổi sang loại nội dung được chỉ định. |
getBlob() | Blob | Trả về dữ liệu bên trong đối tượng này dưới dạng một blob. |
getContent() | String | Lấy nội dung của HtmlOutput này. |
getFaviconUrl() | String | Lấy URL của thẻ liên kết biểu tượng trang web đã thêm vào trang bằng cách gọi setFaviconUrl(iconUrl) . |
getHeight() | Integer | Lấy chiều cao ban đầu của hộp thoại tuỳ chỉnh trong Google Tài liệu, Trang tính hoặc Biểu mẫu. |
getMetaTags() | HtmlOutputMetaTag[] | Lấy một mảng các đối tượng đại diện cho thẻ meta đã được thêm vào trang bằng cách gọi addMetaTag(name, content) . |
getTitle() | String | Lấy tiêu đề của trang đầu ra. |
getWidth() | Integer | Lấy chiều rộng ban đầu của hộp thoại tuỳ chỉnh trong Google Tài liệu, Trang tính hoặc Biểu mẫu. |
setContent(content) | HtmlOutput | Thiết lập nội dung của HtmlOutput này. |
setFaviconUrl(iconUrl) | HtmlOutput | Thêm một thẻ liên kết cho biểu tượng trang web vào trang. |
setHeight(height) | HtmlOutput | Đặt chiều cao ban đầu của hộp thoại tuỳ chỉnh trong Google Tài liệu, Trang tính hoặc Biểu mẫu. |
setSandboxMode(mode) | HtmlOutput | Phương thức này hiện không có hiệu lực — trước đây, phương thức này đặt sandbox
mode được dùng cho các tập lệnh phía máy khách. |
setTitle(title) | HtmlOutput | Đặt tiêu đề của trang đầu ra. |
setWidth(width) | HtmlOutput | Đặt chiều rộng ban đầu của hộp thoại tuỳ chỉnh trong Google Tài liệu, Trang tính hoặc Biểu mẫu. |
setXFrameOptionsMode(mode) | HtmlOutput | Đặt trạng thái cho tiêu đề X-Frame-Options của trang để kiểm soát hoạt động nhấp chuột
phòng ngừa. |
Tài liệu chi tiết
addMetaTag(name, content)
Thêm thẻ meta vào trang. Thẻ meta được đưa trực tiếp vào tệp HTML của Apps Script đã bỏ qua. Bạn chỉ được phép sử dụng các thẻ meta sau:
<meta name="apple-mobile-web-app-capable" content="..."/> <meta name="google-site-verification" content="..."/> <meta name="mobile-web-app-capable" content="..."/> <meta name="viewport" content="..."/>
var output = HtmlService.createHtmlOutput('<b>Hello, world!</b>'); output.addMetaTag('viewport', 'width=device-width, initial-scale=1');
Tham số
Tên | Loại | Mô tả |
---|---|---|
name | String | Giá trị của thuộc tính tên của thẻ meta. |
content | String | Giá trị của thuộc tính nội dung của thẻ meta. |
Cầu thủ trả bóng
HtmlOutput
– Kết quả này để tạo chuỗi.
append(addedContent)
Thêm nội dung mới vào nội dung của HtmlOutput
này. Chỉ sử dụng thuộc tính này cho nội dung từ
nguồn đáng tin cậy vì nó không có mã thoát.
// Log "<b>Hello, world!</b><p>Hello again, world.</p>" var output = HtmlService.createHtmlOutput('<b>Hello, world!</b>'); output.append('<p>Hello again, world.</p>'); Logger.log(output.getContent());
Tham số
Tên | Loại | Mô tả |
---|---|---|
addedContent | String | Nội dung cần bổ sung. |
Cầu thủ trả bóng
HtmlOutput
– Kết quả này để tạo chuỗi.
Gửi
Error
– nếu HTML không đúng định dạng
Xem thêm
appendUntrusted(addedContent)
Thêm nội dung mới vào nội dung của HtmlOutput
này bằng cách sử dụng tính năng thoát theo ngữ cảnh.
Phương thức này thoát chính xác nội dung dựa trên trạng thái hiện tại của HtmlOutput
,
để kết quả là một chuỗi an toàn, không bị ảnh hưởng bởi phần đánh dấu hoặc phần phụ thuộc. Hãy sử dụng phương pháp này thay vì sử dụng
thêm mỗi khi bạn thêm nội dung từ một nguồn không đáng tin cậy, chẳng hạn như từ người dùng, để tránh
vô tình cho phép lỗi tập lệnh trên nhiều trang web (XSS) trong đó nội dung hoặc thẻ đánh dấu mà bạn thêm vào
khiến mã thực thi không mong muốn.
// Log "<b>Hello, world!</b><p>Hello again, world.</p>" var output = HtmlService.createHtmlOutput('<b>Hello, world!</b>'); output.appendUntrusted('<p>Hello again, world.</p>'); Logger.log(output.getContent());
Tham số
Tên | Loại | Mô tả |
---|---|---|
addedContent | String | Nội dung cần bổ sung. |
Cầu thủ trả bóng
HtmlOutput
– Kết quả này để tạo chuỗi.
Gửi
Error
– nếu HTML không đúng định dạng
Xem thêm
asTemplate()
Trả về HtmlTemplate
được HtmlOutput
này hỗ trợ. Phương pháp này có thể được dùng để
xây dựng một mẫu dần dần. Các thay đổi trong tương lai đối với HtmlOutput
sẽ ảnh hưởng đến nội dung của
HtmlTemplate
.
var output = HtmlService.createHtmlOutput('<b>Hello, world!</b>'); var template = output.asTemplate();
Cầu thủ trả bóng
HtmlTemplate
— HtmlTemplate
mới.
clear()
Xoá nội dung hiện tại.
var output = HtmlService.createHtmlOutput('<b>Hello, world!</b>'); output.clear();
Cầu thủ trả bóng
HtmlOutput
– Kết quả này để tạo chuỗi.
getAs(contentType)
Trả về dữ liệu bên trong đối tượng này dưới dạng một blob được chuyển đổi sang loại nội dung được chỉ định. Chiến dịch này sẽ thêm đuôi tệp thích hợp vào tên tệp (ví dụ: "myfile.pdf"). Tuy nhiên, việc này giả định rằng phần tên tệp tiếp sau dấu chấm cuối cùng (nếu có) là phần tên tệp hiện có tiện ích mở rộng cần được thay thế. Do đó, "ShoppingList.12.25.2014" trở thành "ShoppingList.12.25.pdf".
Để xem hạn mức hằng ngày cho lượt chuyển đổi, hãy xem bài viết Hạn mức cho Google Dịch vụ. Các miền Google Workspace mới tạo có thể tạm thời bị áp dụng quy định nghiêm ngặt hơn hạn mức.
Tham số
Tên | Loại | Mô tả |
---|---|---|
contentType | String | Loại MIME cần chuyển đổi. Đối với hầu hết các blob, 'application/pdf' là
lựa chọn hợp lệ duy nhất. Đối với hình ảnh ở định dạng BMP, GIF, JPEG hoặc PNG, bất kỳ hình ảnh nào có định dạng 'image/bmp' , 'image/gif' , 'image/jpeg' hoặc 'image/png' cũng
hợp lệ. Đối với tài liệu trên Google Tài liệu, 'text/markdown' cũng hợp lệ. |
Cầu thủ trả bóng
Blob
– Dữ liệu dưới dạng một blob.
getBlob()
Trả về dữ liệu bên trong đối tượng này dưới dạng một blob.
Cầu thủ trả bóng
Blob
– Dữ liệu dưới dạng một blob.
getContent()
Lấy nội dung của HtmlOutput
này.
// Log "<b>Hello, world!</b>" var output = HtmlService.createHtmlOutput('<b>Hello, world!</b>'); Logger.log(output.getContent());
Cầu thủ trả bóng
String
– Nội dung được phân phát.
getFaviconUrl()
Lấy URL của thẻ liên kết biểu tượng trang web đã thêm vào trang bằng cách gọi setFaviconUrl(iconUrl)
. Các thẻ liên kết biểu tượng trang web được đưa trực tiếp vào tệp HTML Apps Script
đã bỏ qua.
var output = HtmlService.createHtmlOutput('<b>Hello, world!</b>'); output.setFaviconUrl('http://www.example.com/image.png'); Logger.log(output.getFaviconUrl());
Cầu thủ trả bóng
String
– URL của hình ảnh biểu tượng trang web.
getHeight()
Lấy chiều cao ban đầu của hộp thoại tuỳ chỉnh trong Google
Tài liệu, Trang tính hoặc Biểu mẫu. Nếu HtmlOutput
được xuất bản dưới dạng một ứng dụng web, thì
phương thức trả về null
. Để đổi kích thước hộp thoại đã mở, hãy gọi
google.script.host.setHeight(height)
trong mã phía máy khách.
var output = HtmlService.createHtmlOutput('<b>Hello, world!</b>'); output.setHeight(200); Logger.log(output.getHeight());
Cầu thủ trả bóng
Integer
– Chiều cao, tính bằng pixel.
getMetaTags()
Lấy một mảng các đối tượng đại diện cho thẻ meta đã được thêm vào trang bằng cách gọi addMetaTag(name, content)
. Thẻ meta được đưa trực tiếp vào tệp HTML của Apps Script
đã bỏ qua.
var output = HtmlService.createHtmlOutput('<b>Hello, world!</b>'); output.addMetaTag('viewport', 'width=device-width, initial-scale=1'); var tags = output.getMetaTags(); Logger.log('<meta name="%s" content="%s"/>', tags[0].getName(), tags[0].getContent());
Cầu thủ trả bóng
HtmlOutputMetaTag[]
– Một mảng các đối tượng đại diện cho thẻ meta đã được thêm vào trang bằng cách gọi addMetaTag(name, content)
.
getTitle()
Lấy tiêu đề của trang đầu ra. Lưu ý rằng <title> Phần tử HTML bị bỏ qua.
var output = HtmlService.createHtmlOutput('<b>Hello, world!</b>'); Logger.log(output.getTitle());
Cầu thủ trả bóng
String
— Tiêu đề của trang.
getWidth()
Lấy chiều rộng ban đầu của hộp thoại tuỳ chỉnh trong Google
Tài liệu, Trang tính hoặc Biểu mẫu. Nếu HtmlOutput
được xuất bản dưới dạng một ứng dụng web, thì
phương thức trả về null
. Để đổi kích thước hộp thoại đã mở, hãy gọi
google.script.host.setWidth(width)
trong mã phía máy khách.
var output = HtmlService.createHtmlOutput('<b>Hello, world!</b>'); output.setWidth(200); Logger.log(output.getWidth());
Cầu thủ trả bóng
Integer
– Chiều rộng tính bằng pixel.
setContent(content)
Thiết lập nội dung của HtmlOutput
này.
var output = HtmlService.createHtmlOutput(); output.setContent('<b>Hello, world!</b>');
Tham số
Tên | Loại | Mô tả |
---|---|---|
content | String | Nội dung cần phân phát. |
Cầu thủ trả bóng
HtmlOutput
– Kết quả này để tạo chuỗi.
Gửi
Error
– nếu HTML không đúng định dạng
setFaviconUrl(iconUrl)
Thêm một thẻ liên kết cho biểu tượng trang web vào trang. Thẻ liên kết biểu tượng trang web được đưa trực tiếp vào Ứng dụng Tệp HTML tập lệnh sẽ bị bỏ qua.
var output = HtmlService.createHtmlOutput('<b>Hello, world!</b>'); output.setFaviconUrl('http://www.example.com/image.png');
Tham số
Tên | Loại | Mô tả |
---|---|---|
iconUrl | String | URL của hình ảnh biểu tượng trang web, với phần mở rộng hình ảnh cho biết hình ảnh loại. |
Cầu thủ trả bóng
HtmlOutput
– Kết quả này để tạo chuỗi.
setHeight(height)
Đặt chiều cao ban đầu của hộp thoại tuỳ chỉnh trong Google
Tài liệu, Trang tính hoặc Biểu mẫu. Nếu HtmlOutput
được xuất bản dưới dạng một ứng dụng web, thì
không có tác dụng. Để đổi kích thước hộp thoại đã mở, hãy gọi
google.script.host.setHeight(height)
trong mã phía máy khách.
var output = HtmlService.createHtmlOutput('<b>Hello, world!</b>'); output.setHeight(200);
Tham số
Tên | Loại | Mô tả |
---|---|---|
height | Integer | Chiều cao mới tính bằng pixel; null dẫn đến giá trị mặc định. |
Cầu thủ trả bóng
HtmlOutput
– Kết quả này để tạo chuỗi.
setSandboxMode(mode)
Phương thức này hiện không có hiệu lực — trước đây, phương thức này đặt sandbox
mode
được dùng cho các tập lệnh phía máy khách. Để bảo vệ người dùng khỏi bị phân phát HTML độc hại hoặc
JavaScript, mã phía máy khách được cung cấp từ dịch vụ HTML sẽ thực thi trong hộp cát bảo mật
áp dụng các hạn chế đối với mã. Ban đầu, phương thức này cho phép tác giả tập lệnh chọn
giữa các phiên bản khác nhau của hộp cát, nhưng giờ đây tất cả tập lệnh đều sử dụng chế độ IFRAME
bất kể chế độ hộp cát được thiết lập là gì. Để biết thêm thông tin, hãy xem hướng dẫn về các hạn chế trong dịch vụ HTML.
Chế độ IFRAME
áp dụng ít hạn chế hơn so với các chế độ hộp cát khác và
chạy nhanh nhất, nhưng hoàn toàn không hoạt động ở một số trình duyệt cũ hơn, bao gồm Internet Explorer
9. Bạn có thể đọc chế độ hộp cát trong tập lệnh phía máy khách bằng cách kiểm tra google.script.sandbox.mode
. Xin lưu ý rằng thuộc tính này trả về chế độ thực tế trên ứng dụng,
có thể khác với chế độ được yêu cầu trên máy chủ nếu chế độ bạn yêu cầu không được hỗ trợ
trong trình duyệt của người dùng.
<!-- Read the sandbox mode (in a client-side script). --> <script> alert(google.script.sandbox.mode); </script>
Tham số
Tên | Loại | Mô tả |
---|---|---|
mode | SandboxMode | Chế độ hộp cát để sử dụng. |
Cầu thủ trả bóng
HtmlOutput
– Kết quả này để tạo chuỗi.
setTitle(title)
Đặt tiêu đề của trang đầu ra. Đối với ứng dụng web, đây là tiêu đề của toàn bộ trang, trong khi
cho HtmlOutput
hiển thị trong Google Trang tính, đây là tiêu đề hộp thoại.
var output = HtmlService.createHtmlOutput('<b>Hello, world!</b>'); output.setTitle('My First Page');
Tham số
Tên | Loại | Mô tả |
---|---|---|
title | String | Tiêu đề mới. |
Cầu thủ trả bóng
HtmlOutput
– Kết quả này để tạo chuỗi.
setWidth(width)
Đặt chiều rộng ban đầu của hộp thoại tuỳ chỉnh trong Google
Tài liệu, Trang tính hoặc Biểu mẫu. Nếu HtmlOutput
được xuất bản dưới dạng một ứng dụng web, thì
không có tác dụng. Để đổi kích thước hộp thoại đã mở, hãy gọi
google.script.host.setWidth(width)
trong mã phía máy khách.
var output = HtmlService.createHtmlOutput('<b>Hello, world!</b>'); output.setWidth(200);
Tham số
Tên | Loại | Mô tả |
---|---|---|
width | Integer | Chiều rộng mới tính bằng pixel; null dẫn đến giá trị mặc định. |
Cầu thủ trả bóng
HtmlOutput
– Kết quả này để tạo chuỗi.
setXFrameOptionsMode(mode)
Đặt trạng thái cho tiêu đề X-Frame-Options
của trang để kiểm soát hoạt động nhấp chuột
phòng ngừa.
Việc đặt XFrameOptionsMode.ALLOWALL
cho phép mọi trang web tạo iframe cho trang, vì vậy,
nhà phát triển nên triển khai biện pháp bảo vệ của riêng họ khỏi hành vi tấn công giả mạo.
Nếu một tập lệnh không đặt chế độ X-Frame-Options
, thì Apps Script sẽ dùng chế độ XFrameOptionsMode.DEFAULT
làm chế độ mặc định.
// Serve HTML with no X-Frame-Options header (in Apps Script server-side code). var output = HtmlService.createHtmlOutput('<b>Hello, world!</b>'); output.setXFrameOptionsMode(HtmlService.XFrameOptionsMode.ALLOWALL);
Tham số
Tên | Loại | Mô tả |
---|---|---|
mode | XFrameOptionsMode | Chế độ tuỳ chọn XFrame cần đặt. |
Cầu thủ trả bóng
HtmlOutput
– Kết quả này để tạo chuỗi.