لحماية المستخدمين من عرض محتوى HTML أو جافا سكريبت ضار، يستخدم "برمجة التطبيقات" إطارات iframe لتوفير تطبيقات وضع الويب لخدمة HTML أو واجهات المستخدم المخصصة في "مستندات Google" و"جداول بيانات Google" و"نماذج Google". (لا تستخدم خدمة HTML وضع الحماية في مواقف أخرى، مثل إنشاء نص رسالة إلكترونية.) يفرض وضع الحماية قيودًا على الشفرة من جهة العميل.
وضع الحماية
تم إنهاء جميع أوضاع الحماية الآن باستثناء IFRAME
. تستخدم التطبيقات التي تستخدم وضع الحماية القديم
وضع IFRAME
الأحدث تلقائيًا. إذا كانت لديك نصوص برمجية
تم تطويرها باستخدام الوضعين القديمين (NATIVE
وEMULATED
)، يجب اتّباع تعليمات نقل البيانات لضمان عملها بشكل صحيح ضمن وضع IFRAME
.
لم يعد لطريقة setSandboxMode
أي تأثير عند الاتصال.
القيود في وضع IFRAME
يستند وضع الحماية IFRAME
إلى ميزة وضع الحماية لإطار iframe في HTML5، باستخدام الكلمات الرئيسية التالية:
allow-same-origin
allow-forms
allow-scripts
allow-popups
allow-downloads
allow-modals
allow-popups-to-escape-sandbox
allow-top-navigation-by-user-activation
- يتم ضبط هذه السمة فقط لمشروعات النصوص البرمجية المستقلة.
الكلمة الرئيسية 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.