Lớp google.script.run (API phía máy khách)

google.script.run là một API JavaScript phía máy khách không đồng bộ có trong các trang dịch vụ HTML có thể gọi các hàm Apps Script phía máy chủ. Để tương tác với các hộp thoại hoặc thanh bên trong Google Tài liệu, Trang tính hoặc Biểu mẫu qua mã phía máy khách, hãy sử dụng google.script.host. Để biết thêm thông tin, hãy xem hướng dẫn giao tiếp với các hàm máy chủ trong dịch vụ HTML.

Phương thức

Phương thứcKiểu dữ liệu trả vềMô tả ngắn
myFunction(...) (bất kỳ hàm phía máy chủ nào) void Thực thi hàm Apps Script phía máy chủ bằng tên tương ứng.
withFailureHandler(function) google.script.run Thiết lập hàm callback để chạy nếu hàm phía máy chủ trả về một ngoại lệ.
withSuccessHandler(function) google.script.run Thiết lập hàm callback để chạy nếu hàm phía máy chủ trả về thành công.
withUserObject(object) google.script.run Đặt một đối tượng cần truyền dưới dạng tham số thứ hai cho trình xử lý thành công và thất bại.

Tài liệu chi tiết

myFunction(...) (bất kỳ hàm phía máy chủ nào)

Thực thi hàm Apps Script phía máy chủ bằng tên tương ứng.

Code.gs

function doGet() {
  return HtmlService.createHtmlOutputFromFile('Index');
}

function doSomething() {
  Logger.log('I was called!');
}

Index.html

<!DOCTYPE html>
<html>
  <head>
    <base target="_top">
    <script>
      google.script.run.doSomething();
    </script>
  </head>
  <body>
  </body>
</html>

Các tham số

TênLoạiNội dung mô tả
...Hầu hết các loại đều hợp lệ, nhưng không phải phần tử Date, Function hoặc DOM ngoài form; xem nội dung mô tảThông số pháp lý là các dữ liệu gốc JavaScript như Number, Boolean, String hoặc null, cũng như các đối tượng và mảng JavaScript bao gồm các dữ liệu gốc, đối tượng và mảng. Phần tử form trong trang cũng hợp pháp dưới dạng tham số, nhưng nó phải là tham số duy nhất của hàm. Yêu cầu không thành công nếu bạn cố truyền phần tử Date, Function, DOM ngoài form hoặc loại bị cấm khác, bao gồm cả các loại bị cấm trong đối tượng hoặc mảng. Các đối tượng tạo tham chiếu vòng tròn cũng sẽ không thành công và các trường không xác định trong mảng sẽ trở thành null. Xin lưu ý rằng một đối tượng được truyền đến máy chủ sẽ trở thành bản sao của đối tượng gốc. Nếu một hàm máy chủ nhận một đối tượng và thay đổi các thuộc tính của đối tượng đó, thì các thuộc tính trên ứng dụng sẽ không bị ảnh hưởng.

Cầu thủ trả bóng

void – phương thức này không đồng bộ và không trả về trực tiếp; tuy nhiên, hàm phía máy chủ có thể trả về một giá trị cho ứng dụng dưới dạng tham số được chuyển đến trình xử lý thành công; ngoài ra, các loại dữ liệu trả về cũng phải tuân theo các quy định hạn chế như loại tham số, ngoại trừ việc phần tử form không phải là loại dữ liệu trả về hợp pháp


withFailureHandler(function)

Thiết lập hàm callback để chạy nếu hàm phía máy chủ trả về một ngoại lệ. Đối tượng Error được truyền vào hàm dưới dạng đối số đầu tiên và đối tượng người dùng (nếu có) được truyền dưới dạng đối số thứ hai. Nếu không có trình xử lý lỗi, các lỗi sẽ được ghi lại vào bảng điều khiển JavaScript. Để ghi đè giá trị này, hãy gọi withFailureHandler(null) hoặc cung cấp một trình xử lý lỗi không làm gì cả.

Code.gs

function doGet() {
  return HtmlService.createHtmlOutputFromFile('Index');
}

function getUnreadEmails() {
  // 'got' instead of 'get' will throw an error.
  return GmailApp.gotInboxUnreadCount();
}

Index.html

<!DOCTYPE html>
<html>
  <head>
    <base target="_top">
    <script>
      function onFailure(error) {
        var div = document.getElementById('output');
        div.innerHTML = "ERROR: " + error.message;
      }

      google.script.run.withFailureHandler(onFailure)
          .getUnreadEmails();
    </script>
  </head>
  <body>
    <div id="output"></div>
  </body>
</html>

Các tham số

TênLoạiNội dung mô tả
functionFunctionhàm callback phía máy khách để chạy nếu hàm phía máy chủ trả về một ngoại lệ; đối tượng Error được truyền vào hàm dưới dạng đối số đầu tiên và đối tượng người dùng (nếu có) được truyền làm đối số thứ hai

Cầu thủ trả bóng

google.script.run — "trình chạy tập lệnh" này để tạo chuỗi


withSuccessHandler(function)

Thiết lập hàm callback để chạy nếu hàm phía máy chủ trả về thành công. Giá trị trả về của máy chủ được truyền vào hàm dưới dạng đối số đầu tiên và đối tượng người dùng (nếu có) được truyền dưới dạng đối số thứ hai.

Code.gs

function doGet() {
  return HtmlService.createHtmlOutputFromFile('Index');
}

function getUnreadEmails() {
  return GmailApp.getInboxUnreadCount();
}

Index.html

<!DOCTYPE html>
<html>
  <head>
    <base target="_top">
    <script>
      function onSuccess(numUnread) {
        var div = document.getElementById('output');
        div.innerHTML = 'You have ' + numUnread
            + ' unread messages in your Gmail inbox.';
      }

      google.script.run.withSuccessHandler(onSuccess)
          .getUnreadEmails();
    </script>
  </head>
  <body>
    <div id="output"></div>
  </body>
</html>

Các tham số

TênLoạiNội dung mô tả
functionFunctionhàm callback phía máy khách để chạy nếu hàm phía máy chủ trả về thành công; giá trị trả về của máy chủ được truyền vào hàm dưới dạng đối số đầu tiên và đối tượng người dùng (nếu có) được truyền làm đối số thứ hai

Cầu thủ trả bóng

google.script.run — "trình chạy tập lệnh" này để tạo chuỗi


withUserObject(object)

Đặt một đối tượng cần truyền dưới dạng tham số thứ hai cho trình xử lý thành công và thất bại. "Đối tượng người dùng" này — đừng nhầm lẫn với lớp User — cho phép các hàm callback phản hồi trong ngữ cảnh mà ứng dụng đã kết nối với máy chủ. Vì các đối tượng người dùng không được gửi đến máy chủ, nên các đối tượng này không phải tuân theo quy định hạn chế về tham số và giá trị trả về cho lệnh gọi máy chủ. Tuy nhiên, đối tượng người dùng không thể là đối tượng được tạo bằng toán tử new.

Code.gs

function doGet() {
  return HtmlService.createHtmlOutputFromFile('Index');
}

function getEmail() {
  return Session.getActiveUser().getEmail();
}

Index.html

<!DOCTYPE html>
<html>
  <head>
    <base target="_top">
    <script>
      function updateButton(email, button) {
        button.value = 'Clicked by ' + email;
      }
    </script>
  </head>
  <body>
    <input type="button" value="Not Clicked"
      onclick="google.script.run
          .withSuccessHandler(updateButton)
          .withUserObject(this)
          .getEmail()" />
    <input type="button" value="Not Clicked"
      onclick="google.script.run
          .withSuccessHandler(updateButton)
          .withUserObject(this)
          .getEmail()" />
  </body>
</html>

Các tham số

TênLoạiNội dung mô tả
objectObjectmột đối tượng để truyền dưới dạng thông số thứ hai đến trình xử lý thành công và lỗi; vì các đối tượng người dùng không được gửi tới máy chủ nên các đối tượng này không phải tuân theo các hạn chế về tham số và giá trị trả về cho lệnh gọi máy chủ. Tuy nhiên, đối tượng người dùng không được là đối tượng được tạo bằng toán tử new

Cầu thủ trả bóng

google.script.run — "trình chạy tập lệnh" này để tạo chuỗi