HTML Hizmeti: Kısıtlamalar

Apps Komut Dosyası, kullanıcılara kötü amaçlı HTML veya JavaScript sunulmasını önlemek amacıyla, HTML hizmeti web uygulamalarını veya Google Dokümanlar, E-Tablolar ve Formlar'a yönelik özel kullanıcı arayüzlerini korumalı alana almak için iframe'leri kullanır. (HTML hizmeti, e-postanın gövdesini oluşturma gibi diğer durumlarda korumalı alan kullanmaz.) Korumalı alan, istemci taraflı koda sınırlamalar uygular.

Korumalı Alan Modu

IFRAME hariç tüm korumalı alan modları sonlandırıldı. Eski korumalı alan modlarını kullanan uygulamalar artık otomatik olarak yeni IFRAME modunu kullanıyor. Eski modlar (NATIVE ve EMULATED) kullanılarak geliştirilmiş komut dosyalarınız varsa IFRAME modunda düzgün şekilde çalıştıklarından emin olmak için taşıma talimatlarını uygulayın.

setSandboxMode yönteminin artık çağrıldığında hiçbir etkisi yoktur.

IFRAME modundaki kısıtlamalar

IFRAME korumalı alan modu, aşağıdaki anahtar kelimeler kullanılarak HTML5'teki iframe korumalı alanı özelliğine dayanır:

  • allow-same-origin
  • allow-forms
  • allow-scripts
  • allow-popups
  • allow-downloads
  • allow-modals
  • allow-popups-to-escape-sandbox
  • allow-top-navigation-by-user-activation - Bu özellik yalnızca bağımsız komut dosyası projeleri için ayarlanır.

İçeriğin üst düzey göz atma bağlamında gezinmesine izin veren allow-top-navigation anahtar kelimesi kısıtlanmıştır ve korumalı alanda bir özellik olarak ayarlanmaz. Komut dosyanızı yönlendirmeniz gerekirse bunun yerine kullanıcının işlem yapması için bir bağlantı veya düğme ekleyin.

IFRAME modunda bağlantı hedefi özelliğini _top veya _blank olarak ayarlamanız gerekir:

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>

Bu özelliği, çevreleyen web sayfasının başlık bölümünde yer alan <base> etiketini kullanarak da geçersiz kılabilirsiniz:

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

Etkin içerik için HTTPS gereklidir

Komut dosyaları, harici stil sayfaları ve XmlHttpRequests gibi "Etkin" içerikler HTTP yerine HTTPS üzerinden yüklenmelidir.