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

Apps Script เพื่อปกป้องผู้ใช้ไม่ให้ได้รับ HTML หรือ JavaScript ที่เป็นอันตราย ใช้ 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