Một đối tượng Html
có thể được phân phát từ một tập lệnh. Do các cân nhắc về bảo mật, các tập lệnh không thể trực tiếp trả về HTML cho trình duyệt. Thay vào đó, họ phải dọn dẹp mã nguồn để mã nguồn đó không thể thực hiện các hành động độc hại. Bạn có thể trả về HTML đã được dọn dẹp như sau:
function doGet() { return HtmlService.createHtmlOutput('<b>Hello, world!</b>'); }
Html Output
có thể bao gồm JavaScript và CSS được nhúng. (Đây là JavaScript phía máy khách tiêu chuẩn thao tác với DOM, chứ không phải Apps Script). Tất cả nội dung này đều được đưa vào hộp cát bằng cách sử dụng tính năng hộp cát
iframe. Để biết thêm thông tin, hãy xem hướng dẫn về các quy định 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 |
---|---|---|
add | Html | Thêm thẻ meta vào trang. |
append(addedContent) | Html | Thêm nội dung mới vào nội dung của Html này. |
append | Html | Thêm nội dung mới vào nội dung của Html này, bằng cách sử dụng tính năng thoát theo ngữ cảnh. |
as | Html | Trả về một Html được Html này hỗ trợ. |
clear() | Html | Xoá nội dung hiện tại. |
get | 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 thành loại nội dung đã chỉ định. |
get | Blob | Trả về dữ liệu bên trong đối tượng này dưới dạng blob. |
get | String | Lấy nội dung của Html này. |
get | String | Lấy URL cho thẻ đường liên kết biểu tượng trang web được thêm vào trang bằng cách gọi set . |
get | 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. |
get | Html | 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 add . |
get | String | Lấy tiêu đề của trang đầu ra. |
get | 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. |
set | Html | Đặt nội dung của Html này. |
set | Html | Thêm thẻ liên kết cho biểu tượng trang vào trang. |
set | Html | Đặ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. |
set | Html | 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 dùng cho tập lệnh phía máy khách. |
set | Html | Đặt tiêu đề cho trang đầu ra. |
set | Html | Đặ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. |
set | Html | Đặt trạng thái của tiêu đề X-Frame-Options của trang, giúp kiểm soát tính năng ngăn chặn hành vi nhấp giả. |
Tài liệu chi tiết
add Meta Tag(name, content)
Thêm thẻ meta vào trang. Các thẻ meta được đưa trực tiếp vào tệp HTML của Apps Script sẽ bị bỏ qua. Chỉ cho 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="..."/>
const 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 name 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
Html
– 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 Html
này. Chỉ sử dụng tính năng này cho nội dung từ một nguồn đáng tin cậy vì nội dung này không được thoát.
// Log "<b>Hello, world!</b><p>Hello again, world.</p>" const 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ả |
---|---|---|
added | String | Nội dung cần nối. |
Cầu thủ trả bóng
Html
– Kết quả này, để tạo chuỗi.
Gửi
Error
– nếu HTML có định dạng không đúng
Xem thêm
append Untrusted(addedContent)
Thêm nội dung mới vào nội dung của Html
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 nội dung một cách chính xác dựa trên trạng thái hiện tại của Html
, để kết quả là một chuỗi an toàn không có mã đánh dấu hoặc tác dụng phụ. Hãy sử dụng phương thức này thay vì sử dụng phương thức nối bất cứ khi nào bạn thêm nội dung từ một nguồn không đáng tin cậy, chẳng hạn như từ mộ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 mã đánh dấu mà bạn nối gây ra việc thực thi mã không mong muốn.
// Log "<b>Hello, world!</b><p>Hello again, world.</p>" const 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ả |
---|---|---|
added | String | Nội dung cần nối. |
Cầu thủ trả bóng
Html
– Kết quả này, để tạo chuỗi.
Gửi
Error
– nếu HTML có định dạng rất không đúng
Xem thêm
as Template()
Trả về một Html
được Html
này hỗ trợ. Bạn có thể sử dụng phương thức này để tạo dần một mẫu. Các thay đổi trong tương lai đối với Html
cũng ảnh hưởng đến nội dung của Html
.
const output = HtmlService.createHtmlOutput('<b>Hello, world!</b>'); const template = output.asTemplate();
Cầu thủ trả bóng
Html
– Html
mới.
clear()
Xoá nội dung hiện tại.
const output = HtmlService.createHtmlOutput('<b>Hello, world!</b>'); output.clear();
Cầu thủ trả bóng
Html
– Kết quả này, để tạo chuỗi.
get As(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 thành loại nội dung đã chỉ định. Phương thức này thêm đuôi tệp thích hợp vào tên tệp, ví dụ: "myfile.pdf". Tuy nhiên, hàm này giả định rằng phần tên tệp theo sau dấu chấm cuối cùng (nếu có) là một đuôi tệp hiện có cần được thay thế. Do đó, "ShoppingList.12.25.2014" sẽ 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 Dịch vụ của Google. Các miền Google Workspace mới tạo có thể tạm thời phải tuân theo hạn mức nghiêm ngặt hơn.
Tham số
Tên | Loại | Mô tả |
---|---|---|
content | String | Loại MIME cần chuyển đổi sang. Đối với hầu hết các blob, 'application/pdf' là tuỳ 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ỳ 'image/bmp' , 'image/gif' , 'image/jpeg' hoặc 'image/png' nào cũng đều hợp lệ. Đối với tài liệu 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 blob.
get Blob()
Trả về dữ liệu bên trong đối tượng này dưới dạng blob.
Cầu thủ trả bóng
Blob
– Dữ liệu dưới dạng blob.
get Content()
Lấy nội dung của Html
này.
// Log "<b>Hello, world!</b>" const 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.
get Favicon Url()
Lấy URL cho thẻ đường liên kết biểu tượng trang web được thêm vào trang bằng cách gọi set
. Các thẻ đường liên kết đến biểu tượng trang web được đưa trực tiếp vào tệp HTML của Apps Script sẽ bị bỏ qua.
const 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.
get Height()
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 Html
được phát hành dưới dạng ứng dụng web, thì phương thức này sẽ trả về null
. Để đổi kích thước hộp thoại đang mở, hãy gọi
google.script.host.setHeight(height)
trong mã phía máy khách.
const 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.
get Meta Tags()
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 add
. Các thẻ meta được đưa trực tiếp vào tệp HTML của Apps Script sẽ bị bỏ qua.
const output = HtmlService.createHtmlOutput('<b>Hello, world!</b>'); output.addMetaTag('viewport', 'width=device-width, initial-scale=1'); const tags = output.getMetaTags(); Logger.log( '<meta name="%s" content="%s"/>', tags[0].getName(), tags[0].getContent(), );
Cầu thủ trả bóng
Html
– 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 add
.
get Title()
Lấy tiêu đề của trang đầu ra. Xin lưu ý rằng phần tử HTML <title> sẽ bị bỏ qua.
const output = HtmlService.createHtmlOutput('<b>Hello, world!</b>'); Logger.log(output.getTitle());
Cầu thủ trả bóng
String
– Tiêu đề của trang.
get Width()
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 Html
được phát hành dưới dạng ứng dụng web, thì phương thức này sẽ trả về null
. Để đổi kích thước hộp thoại đang mở, hãy gọi
google.script.host.setWidth(width)
trong mã phía máy khách.
const 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.
set Content(content)
Đặt nội dung của Html
này.
const 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
Html
– Kết quả này, để tạo chuỗi.
Gửi
Error
– nếu HTML có định dạng không đúng
set Favicon Url(iconUrl)
Thêm thẻ liên kết cho biểu tượng trang vào trang. Các thẻ đường liên kết đến biểu tượng ứng dụng được đưa trực tiếp vào tệp HTML của tập lệnh ứng dụng sẽ bị bỏ qua.
const output = HtmlService.createHtmlOutput('<b>Hello, world!</b>'); output.setFaviconUrl('http://www.example.com/image.png');
Tham số
Tên | Loại | Mô tả |
---|---|---|
icon | String | URL của hình ảnh favicon, với phần mở rộng hình ảnh cho biết loại hình ảnh. |
Cầu thủ trả bóng
Html
– Kết quả này, để tạo chuỗi.
set Height(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 Html
được phát hành dưới dạng ứng dụng web, thì phương thức này sẽ không có hiệu lực. Để đổi kích thước hộp thoại đang mở, hãy gọi
google.script.host.setHeight(height)
trong mã phía máy khách.
const 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 sẽ dẫn đến giá trị mặc định. |
Cầu thủ trả bóng
Html
– Kết quả này, để tạo chuỗi.
set Sandbox Mode(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
dùng cho tập lệnh phía máy khách. Để bảo vệ người dùng khỏi việc được phân phát HTML hoặc JavaScript độc hại, mã phía máy khách được phân phát từ dịch vụ HTML sẽ thực thi trong một hộp cát bảo mật áp đặt các quy tắ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 hộp cát, nhưng hiện tại, tất cả tập lệnh đều sử dụng chế độ IFRAME
bất kể chế độ hộp cát được đặt là gì. Để biết thêm thông tin, hãy xem hướng dẫn về các quy định 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 trong một số trình duyệt cũ, bao gồm cả 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ế độ được 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 | Sandbox | Chế độ hộp cát cần sử dụng. |
Cầu thủ trả bóng
Html
– Kết quả này, để tạo chuỗi.
set Title(title)
Đặt tiêu đề cho trang đầu ra. Đối với ứng dụng web, đây là tiêu đề của toàn bộ trang, còn đối với Html
hiển thị trong Google Trang tính, đây là tiêu đề hộp thoại.
const 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
Html
– Kết quả này, để tạo chuỗi.
set Width(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 Html
được phát hành dưới dạng ứng dụng web, thì phương thức này sẽ không có hiệu lực. Để đổi kích thước hộp thoại đang mở, hãy gọi
google.script.host.setWidth(width)
trong mã phía máy khách.
const 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 sẽ trả về giá trị mặc định. |
Cầu thủ trả bóng
Html
– Kết quả này, để tạo chuỗi.
set XFrame Options Mode(mode)
Đặt trạng thái của tiêu đề X-Frame-Options
của trang, giúp kiểm soát tính năng ngăn chặn hành vi nhấp giả.
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ệ riêng để chống lại hành vi nhấp giả.
Nếu tập lệnh không đặt chế độ X-Frame-Options
, thì Apps Script sẽ 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). const 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
Html
– Kết quả này, để tạo chuỗi.