บริการ HTML: ข้อจํากัด

จัดทุกอย่างให้เป็นระเบียบอยู่เสมอด้วยคอลเล็กชัน บันทึกและจัดหมวดหมู่เนื้อหาตามค่ากำหนดของคุณ

เพื่อปกป้องผู้ใช้จากการแสดง HTML หรือ JavaScript ที่เป็นอันตราย Apps Script จะใช้ iframe เพื่อสร้างเว็บแอป HTML แบบแซนด์บ็อกซ์หรืออินเทอร์เฟซผู้ใช้ที่กําหนดเองสําหรับ Google เอกสาร ชีต และฟอร์ม (บริการ HTML ไม่ใช้แซนด์บ็อกซ์ในสถานการณ์อื่นๆ เช่น การสร้างเนื้อความของอีเมล) แซนด์บ็อกซ์จะระบุข้อจํากัดเกี่ยวกับโค้ดฝั่งไคลเอ็นต์

โหมดแซนด์บ็อกซ์

โหมดแซนด์บ็อกซ์ทั้งหมดหยุดให้บริการแล้ว ยกเว้น IFRAME แอปที่ใช้โหมดแซนด์บ็อกซ์รุ่นเก่าจะใช้โหมด IFRAME ที่ใหม่กว่าโดยอัตโนมัติ หากมีสคริปต์ที่พัฒนาขึ้นโดยใช้โหมดที่เก่ากว่า (NATIVE และ EMULATED) คุณควรทําตามวิธีการย้ายข้อมูลเพื่อให้สคริปต์ทํางานอย่างถูกต้องในโหมด IFRAME

ตอนนี้เมธอด setSandboxMode จะไม่มีผลเมื่อเรียกใช้

ข้อจํากัดในโหมด iframe

โหมดแซนด์บ็อกซ์ของ IFRAME อิงตามฟีเจอร์แซนด์บ็อกซ์ของ iframe ใน HTML5 โดยใช้คีย์เวิร์ดต่อไปนี้

คีย์เวิร์ด allow-top-navigation ที่ช่วยให้เนื้อหาไปยังบริบทการท่องเว็บระดับบนสุดได้ถูกจํากัดและตั้งค่าเป็นแอตทริบิวต์ในแซนด์บ็อกซ์ หากต้องการเปลี่ยนเส้นทางสคริปต์ ให้เพิ่มลิงก์หรือปุ่มเพื่อให้ผู้ใช้ดําเนินการแทน

ในโหมด IFRAME คุณต้องตั้งค่าแอตทริบิวต์เป้าหมายลิงก์เป็น _top หรือ _blank ดังนี้

Code.js

function doGet() {
  var template = HtmlService.createTemplateFromFile('top');
  return template.evaluate().setSandboxMode(HtmlService.SandboxMode.IFRAME);
}

Top.html

<!DOCTYPE html>
<html>
 <body>
   <div>
     <a href="http://google.com" target="_top">Click Me!</a>
   </div>
 </body>
</html>

นอกจากนี้ คุณยังลบล้างแอตทริบิวต์นี้ได้โดยใช้แท็ก <base> ในส่วนหัวของหน้าเว็บที่แนบมาด้วย

<!DOCTYPE html>
<html>
  <head>
    <base target="_top">
  </head>
  <body>
   <div>
     <a href="http://google.com">Click Me!</a>
   </div>
 </body>
</html>

ต้องมี HTTPS สําหรับเนื้อหาที่ใช้งานอยู่

เนื้อหา"ใช้งานอยู่" เช่น สคริปต์, สไตล์ชีตภายนอก และ XmlHttpRequests ต้องโหลดผ่าน HTTPS ไม่ใช่ HTTP