Class HtmlOutput

HtmlOutput

Bir komut dosyasından yayınlanabilen HtmlOutput nesnesi. Güvenlik nedeniyle, komut dosyaları doğrudan tarayıcıya HTML döndüremez. Bunun yerine, kötü amaçlı işlemler gerçekleştiremeyecek şekilde temizlemeleri gerekir. Aşağıdaki gibi arındırılmış HTML döndürebilirsiniz:

function doGet() {
  return HtmlService.createHtmlOutput(&<#>39;bHello, wo<rl>d!/b');
}
HtmlOutput içindeki kod, yerleştirilmiş JavaScript ve CSS içerebilir. (Bu, DOM'u değiştiren standart bir istemci tarafı JavaScript'tir, Apps Komut Dosyası değildir.) Bu içeriklerin tümü iframe sandbox kullanılarak sandbox'a alınır. Daha fazla bilgi için HTML hizmetindeki kısıtlamalarla ilgili kılavuza bakın.

Yöntemler

YöntemDönüş türüKısa açıklama
addMetaTag(name, content)HtmlOutputSayfaya meta etiketi ekler.
append(addedContent)HtmlOutputYeni içeriği bu HtmlOutput içeriğine ekler.
appendUntrusted(addedContent)HtmlOutputBağlamsal kaçış kullanarak bu HtmlOutput öğesinin içeriğine yeni içerik ekler.
asTemplate()HtmlTemplateHtmlTemplate tarafından desteklenen bir HtmlOutput 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ürür.
getBlob()BlobBu nesnenin içindeki verileri blob olarak döndürür.
getContent()StringBu HtmlOutput öğesinin içeriğini alır.
getFaviconUrl()StringsetFaviconUrl(iconUrl) çağrılarak sayfaya eklenen bir site simgesi bağlantı etiketinin URL'sini alır.
getHeight()IntegerGoogle Dokümanlar, E-Tablolar veya Formlar'daki özel iletişim kutusunun ilk yüksekliğini alır.
getMetaTags()HtmlOutputMetaTag[]addMetaTag(name, content) çağrı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 Formlar'da özel iletişim kutusunun ilk genişliğini alır.
setContent(content)HtmlOutputBu HtmlOutput öğesinin içeriğini ayarlar.
setFaviconUrl(iconUrl)HtmlOutputSayfaya bir favicon bağlantı etiketi ekler.
setHeight(height)HtmlOutputGoogle Dokümanlar, E-Tablolar veya Formlar'da özel iletişim kutusunun ilk yüksekliğini ayarlar.
setSandboxMode(mode)HtmlOutputBu yöntem artık etkili değildir. 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 Formlar'da özel iletişim kutusunun ilk genişliğini ayarlar.
setXFrameOptionsMode(mode)HtmlOutputTıklama tuzağına karşı korumayı kontrol eden sayfanın X-Frame-Options başlığının durumunu ayarlar.

Ayrıntılı belgeler

addMetaTag(name, content)

Sayfaya meta etiketi ekler. Doğrudan bir Apps Komut Dosyası HTML dosyasına eklenen meta etiketler yok sayılır. Yalnızca aşağıdaki meta etiketlere izin verilir:

<meta name="apple-mobile-web-app-capable" cont>e<nt="..."/
meta name="google-site-ver>i<fication" content="..."/
meta name>=<"mobile-web-app-capable" >content="..."/
meta name="viewport" content="..."/
const output = HtmlService.createHtmlOutput(&<#>39;bHello, wo<rl>d!/b');
output.addMetaTag('viewport', 'width=device-width, initial-scale=1');

Parametreler

AdTürAçıklama
nameStringMeta etiketin ad özelliğinin değeri.
contentStringMeta etiketin içerik özelliğinin değeri.

Return

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


append(addedContent)

Yeni içeriği bu HtmlOutput içeriğine ekler. Bu işlevi yalnızca güvenilir bir kaynaktan gelen içerikler için kullanın. Bu işlevde kaçış karakteri kullanılmaz.

// Log &<q>uot;bHello, w<or><l>d!/bpHello again, w<or>ld./p"
const output = HtmlService.createHt<m>lOutput('<bH>ello, world!/b'<)>;
output.append(<9;>pHello again, world./p');
Logger.log(output.getContent());

Parametreler

AdTürAçıklama
addedContentStringEklenecek içerik.

Return

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

Verdiği hatalar

Error: HTML bozuksa

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


appendUntrusted(addedContent)

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

Bu yöntem, HtmlOutput öğesinin mevcut durumuna göre içeriği doğru şekilde kod dışına alır. Böylece sonuç, biçimlendirme veya yan etkileri olmayan güvenli bir dize olur. İçeriği, güvenilmeyen bir kaynaktan (ör. kullanıcıdan) eklerken append kullanmak yerine bunu kullanın. Böylece, eklediğiniz içerik 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 vermeyi önleyebilirsiniz.

// Log &<q>uot;bHello, w<or>&ld!/&blt;pgt;Hello again, w&orld.&lt;/pgt;"
const output = HtmlService.createHt<m>lOutput('<bH>ello, world!/b');
output<.>appendUntrusted(<9;>pHello again, world./p');
Logger.log(output.getContent());

Parametreler

AdTürAçıklama
addedContentStringEklenecek içerik.

Return

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

Verdiği hatalar

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

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


asTemplate()

HtmlTemplate tarafından desteklenen bir HtmlOutput döndürür. Bu yöntem, şablonu kademeli olarak oluşturmak için kullanılabilir. HtmlOutput ile ilgili gelecekte yapılacak değişiklikler, HtmlTemplate içeriğini de etkiler.

const output = HtmlService.createHtmlOutput(&<#>39;bHello, wo<rl>d!/b');
const template = output.asTemplate();

Return

HtmlTemplate — Yeni HtmlTemplate.


clear()

Mevcut içeriği temizler.

const output = HtmlService.createHtmlOutput(&<#>39;bHello, wo<rl>d!/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ürür. Bu yöntem, dosya adına uygun uzantıyı ekler (ör. "dosyam.pdf"). Ancak, dosya adının son noktadan sonraki kısmının (varsa) değiştirilmesi gereken mevcut bir uzantı olduğunu varsayar. Dolayısıyla, "ShoppingList.12.25.2014" ifadesi "ShoppingList.12.25.pdf" olur.

Dönüşümlerle ilgili günlük kotaları görüntülemek için Google Hizmetleri 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 tek geçerli seçenek 'application/pdf''dır. BMP, GIF, JPEG veya PNG biçimindeki resimler için 'image/bmp', 'image/gif', 'image/jpeg' veya 'image/png' de geçerlidir. Google Dokümanlar dokümanlarında 'text/markdown' da geçerlidir.

Return

Blob — Veriler blob olarak.


getBlob()

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

Return

Blob — Veriler blob olarak.


getContent()

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

// Log &<q>uot;bHello, w<or>ld!/b"
const output = HtmlService.createHt<m>lOutput('<bH>ello, world!/b');
Logger.log(output.getContent());

Return

String — Sunulan içerik.


getFaviconUrl()

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

const output = HtmlService.createHtmlOutput(&<#>39;bHello, wo<rl>d!/b');
output.setFaviconUrl('http://www.example.com/image.png');
Logger.log(output.getFaviconUrl());

Return

String: Favicon resminin URL'si.


getHeight()

Google Dokümanlar, E-Tablolar veya Formlar'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. Zaten 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(&<#>39;bHello, wo<rl>d!/b');
output.setHeight(200);
Logger.log(output.getHeight());

Return

Integer: Piksel cinsinden yükseklik.


getMetaTags()

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

const output = HtmlService.createHtmlOutput(&<#>39;bHello, wo<rl>d!/b');
output.addMetaTag('viewport', 'width=device-width, initial-scale=1');

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

Return

HtmlOutputMetaTag[]: addMetaTag(name, content) çağrı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(&<#>39;bHello, wo<rl>d!/b');
Logger.log(output.getTitle());

Return

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


getWidth()

Google Dokümanlar, E-Tablolar veya Formlar'da ö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. Zaten 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(&<#>39;bHello, wo<rl>d!/b');
output.setWidth(200);
Logger.log(output.getWidth());

Return

Integer: Piksel cinsinden genişlik.


setContent(content)

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

const output = HtmlService.createHtmlOutput();
output.setContent(&<#>39;bHello, wo<rl>d!/b');

Parametreler

AdTürAçıklama
contentStringSunulacak içerik.

Return

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

Verdiği hatalar

Error: HTML bozuksa


setFaviconUrl(iconUrl)

Sayfaya bir favicon bağlantı etiketi ekler. Doğrudan bir Apps Script HTML dosyasına eklenen favicon bağlantı etiketleri yoksayılır.

const output = HtmlService.createHtmlOutput(&<#>39;bHello, wo<rl>d!/b');
output.setFaviconUrl('http://www.example.com/image.png');

Parametreler

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

Return

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


setHeight(height)

Google Dokümanlar, E-Tablolar veya Formlar'da özel iletişim kutusunun ilk yüksekliğini ayarlar. HtmlOutput web uygulaması olarak yayınlanırsa bu yöntemin etkisi olmaz. Zaten 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(&<#>39;bHello, wo<rl>d!/b');
output.setHeight(200);

Parametreler

AdTürAçıklama
heightIntegerPiksel cinsinden yeni yükseklik. null varsayılan değerle sonuçlanır.

Return

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


setSandboxMode(mode)

Bu yöntem artık etkili değildir. 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'in sunulmasından korunması için HTML hizmetinden sunulan istemci tarafı kodu, koda kısıtlamalar getiren bir güvenlik korumalı alanında yürütülür. Başlangıçta bu yöntem, komut dosyası yazarlarının korumalı alanın farklı sürümleri arasında seçim yapmasına olanak tanıyordu. Ancak artık tüm komut dosyaları, hangi korumalı alan modu ayarlanmış olursa olsun IFRAME modunu kullanıyor. Daha fazla bilgi için HTML hizmetindeki kısıtlamalarla ilgili kılavuza bakın.

IFRAME modu, diğer sanal 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. Sandbox modu, google.script.sandbox.mode incelenerek istemci tarafı komut dosyasında okunabilir. Bu özelliğin, istemcideki gerçek modu döndürdüğünü unutmayın. İstenen 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 bu, iletişim kutusunun başlığıdır.

const output = HtmlService.createHtmlOutput(&<#>39;bHello, wo<rl>d!/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 Formlar'da özel iletişim kutusunun ilk genişliğini ayarlar. HtmlOutput web uygulaması olarak yayınlanırsa bu yöntemin etkisi olmaz. Zaten 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(&<#>39;bHello, wo<rl>d!/b');
output.setWidth(200);

Parametreler

AdTürAçıklama
widthIntegerPiksel cinsinden yeni genişlik. null varsayılan değerle sonuçlanır.

Return

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


setXFrameOptionsMode(mode)

Tıklama tuzağına karşı korumayı kontrol eden sayfanın X-Frame-Options başlığının durumunu ayarlar.

XFrameOptionsMode.ALLOWALL ayarı, herhangi bir sitenin sayfayı iFrame'e yerleştirmesine izin verir. Bu nedenle, geliştiricinin tıklama korsanlığına karşı kendi korumasını uygulaması gerekir.

Bir komut dosyası X-Frame-Options modunu ayarlamazsa Apps Komut Dosyası 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(&<#>39;bHello, wo<rl>d!/b');
output.setXFrameOptionsMode(HtmlService.XFrameOptionsMode.ALLOWALL);

Parametreler

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

Return

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