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 Apps Script phía máy chủ . Để tương tác với hộp thoại hoặc thanh bên trong Google Tài liệu, Trang tính hoặc Biểu mẫu ở phía máy khách mã, 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 chức năng của máy chủ trong dịch vụ HTML.

Phương thức

Phương thứcLoại dữ liệu trả vềMô tả ngắn
myFunction(...) (hàm phía máy chủ bất kỳ) 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 một hàm callback để chạy nếu hàm phía máy chủ gửi một ngoại lệ.
withSuccessHandler(function) google.script.run Thiết lập một 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 Thiết lập một đối tượng để truyền dưới dạng tham số thứ hai đến các trình xử lý thành công và không thành công.

Tài liệu chi tiết

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

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>

Tham số

TênLoạiMô tả
...Hầu hết các loại đều hợp pháp, nhưng không phải Date, Function, hoặc phần tử DOM bên cạnh form; xem nội dung mô tảCác thông số pháp lý là JavaScript dữ liệu gốc 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 nguyên gốc, đối tượng và mảng. Phần tử form trong trang cũng hợp pháp dưới dạng thông số, nhưng đó 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ố gắng chuyển một Date, Function, phần tử DOM bên cạnh form, hoặc các phần tử khác loại bị cấm, bao gồm các loại bị cấm bên trong đối tượng hoặc mảng. Các đối tượng tạo ra vòng tròn các tham chiếu cũng sẽ không thành công và các trường không xác định trong các mảng sẽ trở thành null. 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 được một và thay đổi 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ực tiếp trả về; tuy nhiên, hàm phía máy chủ có thể trả về một giá trị cho máy khách dưới dạng một tham số được truyền đến một trình xử lý thành công; Ngoài ra, loại dữ liệu trả về phải tuân theo các hạn chế giống như các loại thông số, ngoại trừ việc phần tử form không phải là phần tử hợp pháp loại dữ liệu trả về


withFailureHandler(function)

Thiết lập một hàm callback để chạy nếu hàm phía máy chủ gửi một ngoại lệ. Chiến lược phát hành đĩa đơn Error được truyền vào hàm làm đố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. Không có trình xử lý lỗi, các lỗi được ghi 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>

Tham số

TênLoạiMô tả
functionFunctionmột hàm callback phía máy khách để chạy nếu hàm phía máy chủ gửi một ngoại lệ; thời gian Error được truyền vào hàm làm đố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

Cầu thủ trả bóng

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


withSuccessHandler(function)

Thiết lập một hàm callback để chạy nếu hàm phía máy chủ trả về thành công. Của máy chủ giá trị trả về được chuyển vào hàm dưới dạng đối số đầu tiên, còn đố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>

Tham số

TênLoạiMô tả
functionFunctionmột hà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 chuyển đến làm đố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

Cầu thủ trả bóng

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


withUserObject(object)

Thiết lập một đối tượng để truyền dưới dạng tham số thứ hai đến các trình xử lý thành công và không thành công. "Người dùng" này object&quot; — đừng nhầm lẫn với Lớp User – cho phép phương thức gọi lại các hàm này phản hồi ngữ cảnh mà máy khách liên hệ với máy chủ. Vì đối tượng người dùng không được gửi đến máy chủ mà 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 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>

Tham số

TênLoạiMô tả
objectObjectmột đối tượng được truyền dưới dạng tham số thứ hai cho trình xử lý thành công và thất bại; bởi vì đối tượng người dùng không được gửi đến máy chủ, nên chúng không tuân theo các hạn chế về tham số và giá trị trả về của 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 dựng với toán tử new

Cầu thủ trả bóng

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