Class HtmlOutput

HtmlÇıkış

Komut dosyasından yayınlanabilen bir HtmlOutput nesnesi. Güvenlik nedeniyle komut dosyaları, tarayıcıya doğrudan HTML döndüremez. Bunun yerine, kötü amaçlı işlemler yapamamaları için verileri temizlemeleri gerekir. Arındırılmış HTML'yi şu şekilde döndürebilirsiniz:

function doGet() {
  return HtmlService.createHtmlOutput('<b>Hello, world!</b>');
}
HtmlOutput içindeki kod, yerleşik JavaScript ve CSS içerebilir. (Bu, DOM'u değiştiren standart istemci tarafı JavaScript'tir, Apps Script değildir). Bu içeriğin tümü, iframe korumalı alanı kullanılarak korumalı alana alınır. Daha fazla bilgi için HTML hizmetindeki kısıtlamalar kılavuzuna göz atın.

Yöntemler

YöntemDönüş türüKısa açıklama
addMetaTag(name, content)HtmlOutputSayfaya meta etiket ekler.
append(addedContent)HtmlOutputBu HtmlOutput içeriğine yeni içerik ekler.
appendUntrusted(addedContent)HtmlOutputBağlamsal kaçış karakteri kullanarak bu HtmlOutput içeriğine yeni içerik ekler.
asTemplate()HtmlTemplateBu HtmlOutput tarafından desteklenen bir HtmlTemplate döndürür.
clear()HtmlOutputMevcut içeriği temizler.
getAs(contentType)BlobBu nesnenin içindeki verileri, belirtilen içerik türüne dönüştürülmüş bir blob olarak döndürme.
getBlob()BlobBu nesnenin içindeki verileri bir blob olarak döndürme.
getContent()StringBu HtmlOutput öğesinin içeriğini alır.
getFaviconUrl()StringsetFaviconUrl(iconUrl) çağrısı yaparak sayfaya eklenen bir site simgesi bağlantısı etiketinin URL'sini alır.
getHeight()IntegerGoogle Dokümanlar, E-Tablolar veya Forms'daki özel iletişim kutusunun ilk yüksekliğini alır.
getMetaTags()HtmlOutputMetaTag[]addMetaTag(name, content) çağrısı yapılarak sayfaya eklenen meta etiketleri temsil eden bir nesne dizisi alır.
getTitle()StringÇıkış sayfasının başlığını alır.
getWidth()IntegerGoogle Dokümanlar, E-Tablolar veya Forms'daki özel iletişim kutusunun ilk genişliğini alır.
setContent(content)HtmlOutputBu HtmlOutput öğesinin içeriğini belirler.
setFaviconUrl(iconUrl)HtmlOutputSayfaya bir simge resmi bağlantısı etiketi ekler.
setHeight(height)HtmlOutputGoogle Dokümanlar, E-Tablolar veya Formlar'daki özel iletişim kutusunun ilk yüksekliğini belirler.
setSandboxMode(mode)HtmlOutputBu yöntemin artık hiçbir etkisi yoktur. Daha önce istemci tarafı komut dosyaları için kullanılan sandbox mode değerini ayarlıyordu.
setTitle(title)HtmlOutputÇıkış sayfasının başlığını ayarlar.
setWidth(width)HtmlOutputGoogle Dokümanlar, E-Tablolar veya Forms'da bir özel iletişim kutusunun ilk genişliğini belirler.
setXFrameOptionsMode(mode)HtmlOutputTıklama tuşuyla saldırı önlemesini kontrol eden sayfanın X-Frame-Options başlığının durumunu ayarlar.

Ayrıntılı dokümanlar

addMetaTag(name, content)

Sayfaya meta etiket ekler. Doğrudan bir Apps Komut Dosyası HTML dosyasına eklenen meta etiketleri yoksayılır. Yalnızca aşağıdaki meta etiketlere izin verilir:

<meta name="apple-mobile-web-app-capable" content="..."/>
<meta name="google-site-verification" content="..."/>
<meta name="mobile-web-app-capable" content="..."/>
<meta name="viewport" content="..."/>
const output = HtmlService.createHtmlOutput('<b>Hello, world!</b>');
output.addMetaTag('viewport', 'width=device-width, initial-scale=1');

Parametreler

AdTürAçıklama
nameStringMeta etiketinin ad özelliğinin değeri.
contentStringMeta etiketinin content özelliğinin değeri.

Return

HtmlOutput: Zincirleme için bu çıkış.


append(addedContent)

Bu HtmlOutput içeriğine yeni içerik ekler. Bu seçenek, kaçış karakteri içermediği için yalnızca güvenilir bir kaynaktan gelen içerikler için kullanılmalıdır.

// Log "<b>Hello, world!</b><p>Hello again, world.</p>"
const output = HtmlService.createHtmlOutput('<b>Hello, world!</b>');
output.append('<p>Hello again, world.</p>');
Logger.log(output.getContent());

Parametreler

AdTürAçıklama
addedContentStringEklenecek içerik.

Return

HtmlOutput: Zincirleme için bu çıkış.

Atışlar

Error: HTML bozuksa

Aşağıdaki kaynakları da incelemenizi öneririz:


appendUntrusted(addedContent)

Bağlamsal kaçış karakteri kullanarak bu HtmlOutput içeriğine yeni içerik ekler.

Bu yöntem, HtmlOutput'ün mevcut durumuna göre içeriği doğru şekilde kaçar. Böylece sonuç, işaretleme veya yan etki içermeyen güvenli bir dize olur. Eklediğiniz içeriğin veya işaretlemenin beklenmedik kod yürütmesine neden olduğu siteler arası komut dosyası çalıştırma (XSS) hatasına yanlışlıkla izin vermemek için, güvenilmeyen bir kaynaktan (ör. kullanıcı) içerik eklerken append yerine bunu kullanın.

// Log "<b>Hello, world!</b>&lt;p&gt;Hello again, world.&lt;/p&gt;"
const output = HtmlService.createHtmlOutput('<b>Hello, world!</b>');
output.appendUntrusted('<p>Hello again, world.</p>');
Logger.log(output.getContent());

Parametreler

AdTürAçıklama
addedContentStringEklenecek içerik.

Return

HtmlOutput: Zincirleme için bu çıkış.

Atışlar

Error: HTML çok kötü biçimlendirilmişse

Aşağıdaki kaynakları da incelemenizi öneririz:


asTemplate()

Bu HtmlOutput tarafından desteklenen bir HtmlTemplate döndürür. Bu yöntem, bir şablonu kademeli olarak oluşturmak için kullanılabilir. HtmlOutput'te yapılacak gelecekteki değişiklikler HtmlTemplate'un içeriklerini de etkiler.

const output = HtmlService.createHtmlOutput('<b>Hello, world!</b>');
const template = output.asTemplate();

Return

HtmlTemplate: Yeni HtmlTemplate.


clear()

Mevcut içeriği temizler.

const output = HtmlService.createHtmlOutput('<b>Hello, world!</b>');
output.clear();

Return

HtmlOutput: Zincirleme için bu çıkış.


getAs(contentType)

Bu nesnenin içindeki verileri, belirtilen içerik türüne dönüştürülmüş bir blob olarak döndürme. Bu yöntem, dosya adına uygun uzantıyı ekler (ör. "dosyam.pdf"). Ancak, dosya adının son noktayı (varsa) izleyen kısmının, değiştirilmesi gereken mevcut bir uzantı olduğu varsayılır. Sonuç olarak, "AlışverişListesi.25.12.2014", "AlışverişListesi.25.12.pdf" olur.

Dönüşümler için günlük kotaları görüntülemek istiyorsanız Google Hizmetleri için kotalar başlıklı makaleyi inceleyin. Yeni oluşturulan Google Workspace alanları geçici olarak daha katı kotalara tabi olabilir.

Parametreler

AdTürAçıklama
contentTypeStringDönüştürülecek MIME türü. Çoğu blob için 'application/pdf' tek geçerli seçenektir. BMP, GIF, JPEG veya PNG biçimindeki resimler için 'image/bmp', 'image/gif', 'image/jpeg' veya 'image/png' değerlerinden herhangi biri de geçerlidir. Google Dokümanlar dokümanı için 'text/markdown' de geçerlidir.

Return

Blob: Veriler bir blob olarak.


getBlob()

Bu nesnenin içindeki verileri bir blob olarak döndürme.

Return

Blob: Veriler bir blob olarak.


getContent()

Bu HtmlOutput öğesinin içeriğini alır.

// Log "<b>Hello, world!</b>"
const output = HtmlService.createHtmlOutput('<b>Hello, world!</b>');
Logger.log(output.getContent());

Return

String: Sunulan içerik.


getFaviconUrl()

setFaviconUrl(iconUrl) çağrısı yaparak sayfaya eklenen bir site simgesi bağlantısı etiketinin URL'sini alır. Doğrudan bir Apps Komut Dosyası HTML dosyasına eklenen site simgesi bağlantısı etiketleri yoksayılır.

const output = HtmlService.createHtmlOutput('<b>Hello, world!</b>');
output.setFaviconUrl('http://www.example.com/image.png');
Logger.log(output.getFaviconUrl());

Return

String: Site simgesi resminin URL'si.


getHeight()

Google Dokümanlar, E-Tablolar veya Forms'daki özel iletişim kutusunun ilk yüksekliğini alır. HtmlOutput bunun yerine web uygulaması olarak yayınlanırsa bu yöntem null değerini döndürür. Açık olan bir iletişim kutusunu yeniden boyutlandırmak için istemci tarafı kodunda google.script.host.setHeight(height) işlevini çağırın.

const output = HtmlService.createHtmlOutput('<b>Hello, world!</b>');
output.setHeight(200);
Logger.log(output.getHeight());

Return

Integer: Piksel cinsinden yükseklik.


getMetaTags()

addMetaTag(name, content) çağrısı yapılarak sayfaya eklenen meta etiketleri temsil eden bir nesne dizisi alır. Doğrudan bir Apps Komut Dosyası HTML dosyasına eklenen meta etiketleri yoksayılır.

const output = HtmlService.createHtmlOutput('<b>Hello, world!</b>');
output.addMetaTag('viewport', 'width=device-width, initial-scale=1');

const tags = output.getMetaTags();
Logger.log(
    '<meta name="%s" content="%s"/>',
    tags[0].getName(),
    tags[0].getContent(),
);

Return

HtmlOutputMetaTag[]: addMetaTag(name, content) çağrısı yapılarak sayfaya eklenen meta etiketleri temsil eden bir nesne dizisi.


getTitle()

Çıkış sayfasının başlığını alır. <title> HTML öğesinin yoksayıldığını unutmayın.

const output = HtmlService.createHtmlOutput('<b>Hello, world!</b>');
Logger.log(output.getTitle());

Return

String: Sayfanın başlığı.


getWidth()

Google Dokümanlar, E-Tablolar veya Forms'daki özel iletişim kutusunun ilk genişliğini alır. HtmlOutput bunun yerine web uygulaması olarak yayınlanırsa bu yöntem null değerini döndürür. Açık olan bir iletişim kutusunu yeniden boyutlandırmak için istemci tarafı kodunda google.script.host.setWidth(width) işlevini çağırın.

const output = HtmlService.createHtmlOutput('<b>Hello, world!</b>');
output.setWidth(200);
Logger.log(output.getWidth());

Return

Integer: Piksel cinsinden genişlik.


setContent(content)

Bu HtmlOutput öğesinin içeriğini belirler.

const output = HtmlService.createHtmlOutput();
output.setContent('<b>Hello, world!</b>');

Parametreler

AdTürAçıklama
contentStringYayınlanacak içerik.

Return

HtmlOutput: Zincirleme için bu çıkış.

Atışlar

Error: HTML bozuksa


setFaviconUrl(iconUrl)

Sayfaya bir simge resmi bağlantısı etiketi ekler. Doğrudan bir Apps Script HTML dosyasına eklenen favori simgesi bağlantısı etiketleri yoksayılır.

const output = HtmlService.createHtmlOutput('<b>Hello, world!</b>');
output.setFaviconUrl('http://www.example.com/image.png');

Parametreler

AdTürAçıklama
iconUrlStringResim türünü belirten resim uzantısı ile birlikte site simgesi resminin URL'si.

Return

HtmlOutput: Zincirleme için bu çıkış.


setHeight(height)

Google Dokümanlar, E-Tablolar veya Formlar'daki özel iletişim kutusunun ilk yüksekliğini belirler. HtmlOutput bunun yerine web uygulaması olarak yayınlanırsa bu yöntemin hiçbir etkisi olmaz. Açık olan bir iletişim kutusunu yeniden boyutlandırmak için istemci tarafı kodunda google.script.host.setHeight(height) işlevini çağırın.

const output = HtmlService.createHtmlOutput('<b>Hello, world!</b>');
output.setHeight(200);

Parametreler

AdTürAçıklama
heightIntegerYeni yükseklik (piksel cinsinden); null varsayılan değerdir.

Return

HtmlOutput: Zincirleme için bu çıkış.


setSandboxMode(mode)

Bu yöntemin artık hiçbir etkisi yoktur. Daha önce istemci tarafı komut dosyaları için kullanılan sandbox mode değerini ayarlıyordu. Kullanıcıların kötü amaçlı HTML veya JavaScript'e maruz kalmasını önlemek için HTML hizmetinden sunulan istemci tarafı kod, koda kısıtlamalar uygulayan bir güvenlik korumalı alanında yürütülür. Bu yöntem başlangıçta komut dosyası yazarlarının korumalı alanın farklı sürümleri arasında seçim yapmasına olanak tanımasına rağmen artık tüm komut dosyaları, ayarlanan korumalı alan modundan bağımsız olarak IFRAME modunu kullanır. Daha fazla bilgi için HTML hizmetindeki kısıtlamalar kılavuzuna göz atın.

IFRAME modu, diğer korumalı alan modlarına kıyasla çok daha az kısıtlama uygular ve en hızlı şekilde çalışır ancak Internet Explorer 9 dahil olmak üzere belirli eski tarayıcılarda hiç çalışmaz. Korumalı alan modu, google.script.sandbox.mode incelenerek istemci tarafı komut dosyasında okunabilir. Bu mülkün, istemcide gerçek modu döndürdüğünü unutmayın. İstenilen mod kullanıcının tarayıcısında desteklenmiyorsa bu mod, sunucuda istenen moddan farklı olabilir.

<!-- Read the sandbox mode (in a client-side script). -->
<script>
  alert(google.script.sandbox.mode);
</script>

Parametreler

AdTürAçıklama
modeSandboxModeKullanılacak korumalı alan modu.

Return

HtmlOutput: Zincirleme için bu çıkış.


setTitle(title)

Çıkış sayfasının başlığını ayarlar. Web uygulamaları için bu, sayfanın tamamının başlığıdır. Google E-Tablolar'da gösterilen HtmlOutput için ise iletişim kutusu başlığıdır.

const output = HtmlService.createHtmlOutput('<b>Hello, world!</b>');
output.setTitle('My First Page');

Parametreler

AdTürAçıklama
titleStringYeni başlık.

Return

HtmlOutput: Zincirleme için bu çıkış.


setWidth(width)

Google Dokümanlar, E-Tablolar veya Forms'da bir özel iletişim kutusunun ilk genişliğini belirler. HtmlOutput bunun yerine web uygulaması olarak yayınlanırsa bu yöntemin hiçbir etkisi olmaz. Açık olan bir iletişim kutusunu yeniden boyutlandırmak için istemci tarafı kodunda google.script.host.setWidth(width) işlevini çağırın.

const output = HtmlService.createHtmlOutput('<b>Hello, world!</b>');
output.setWidth(200);

Parametreler

AdTürAçıklama
widthIntegerPiksel cinsinden yeni genişlik. null, varsayılan değer döndürür.

Return

HtmlOutput: Zincirleme için bu çıkış.


setXFrameOptionsMode(mode)

Tıklama tuşuyla saldırı önlemesini kontrol eden sayfanın X-Frame-Options başlığının durumunu ayarlar.

XFrameOptionsMode.ALLOWALL ayarı, herhangi bir sitenin sayfayı iFrame içine almasına izin verir. Bu nedenle, geliştirici tıklama tuşuyla saldırıya karşı kendi korumasını uygulamalıdır.

Bir komut dosyası X-Frame-Options modu ayarlamazsa Apps Script varsayılan olarak XFrameOptionsMode.DEFAULT modunu kullanır.

// Serve HTML with no X-Frame-Options header (in Apps Script server-side code).
const output = HtmlService.createHtmlOutput('<b>Hello, world!</b>');
output.setXFrameOptionsMode(HtmlService.XFrameOptionsMode.ALLOWALL);

Parametreler

AdTürAçıklama
modeXFrameOptionsModeAyarlanacak XFrame seçenekleri modu.

Return

HtmlOutput: Zincirleme için bu çıkış.