HTML Hizmeti: Kısıtlamalar

Apps Komut Dosyası, kullanıcıları kötü amaçlı HTML veya JavaScript'ten korumak için HTML hizmeti web uygulamalarını ya da Google Dokümanlar, E-Tablolar ve Formlar için özel kullanıcı arayüzlerini korumalı alana almak üzere iFrame'leri kullanır. (HTML hizmeti, e-posta gövdesi oluşturma gibi diğer durumlarda sanal alan kullanmaz.) Korumalı alan, istemci tarafı kodla ilgili sınırlamalar uygular.

Korumalı alan modu

IFRAME hariç tüm korumalı alan modları artık kullanılamıyor. Eski sanal alan modlarını kullanan uygulamalar artık daha yeni olan IFRAME modunu otomatik olarak kullanıyor. Eski modlar (NATIVE ve EMULATED) kullanılarak geliştirilmiş komut dosyalarınız varsa IFRAME modunda düzgün şekilde çalışabilmeleri için taşıma talimatlarını uygulamanız gerekir.

setSandboxMode yöntemi artık çağrıldığında herhangi bir etkisi olmuyor.

IFRAME modundaki kısıtlamalar

IFRAME Korumalı alan modu, HTML5'teki iframe korumalı alan özelliğine dayanır ve aşağıdaki anahtar kelimeleri kullanı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 olanak tanıyan allow-top-navigation anahtar kelimesi kısıtlanmıştır ve korumalı alanda özellik olarak ayarlanmamıştır. Komut dosyanızı yönlendirmeniz gerekiyorsa kullanıcıların işlem yapması için bunun yerine 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> 

Ayrıca, bu özelliği kapsayan web sayfasının head bölümündeki <base> etiketiyle de 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 üzerinden değil HTTPS üzerinden yüklenmelidir.