2016-03-31 19 views
1

Çalışanlarımın katılımını takip etmemi sağlayan iş yerim için oldukça kullanışlı bir araç geliştirdim. En son eklemem, bir ihlal işaretlendiğinde bu e-posta kimliğine giden bir bağlantıyla bir e-posta gönderilir. Bu bağlantıya tıklayabilir, html sayfasını yükleyebilir ve ihlal kimliğini sayfaya aktarabilirim. Çok fazla arama yapıyorum, ama net bir cevap göremiyorum, ne de benimkine çok benzeyen bir durum bulamıyorum. Benim bulduğum kabul edilen cevaplar benim durumum için geçerli görünmüyor. Sayfamı 1457989239035-cc3050b8 değer geçmek istiyorumHREF'ten Google HTMLSERVICE Uygulamasına Geçiş Pasosu

URL: https://script.google.com/a/macros/mycomp.com/s/blahblahmyID/dev 

HREF: https://script.google.com/a/macros/mycomp.com/s/blahblahmyID/dev?cID=1457989239035-cc3050b8 

: Burada

örnektir. Bunu sayfada anladım, oradan halledebilirim, bir e-postadaki bir HREF bağlantısından onu çekmenin bir yolunu bulamıyorum. Geleneksel bir web sitesi kullanmamanın dezavantajlarından biri.

İşte uygulamasından Index.html yüklemek için benim doGet() kodudur:

function doGet(e) { 

return HtmlService 
    .createTemplateFromFile('Index') 
    .evaluate() 
    .setSandboxMode(HtmlService.SandboxMode.IFRAME); 
} 

bu kod oldukça standart olduğu gibi gerçi ne kadar yararlı emin değilim. Bunu yapmaya çalışan şanstan hoşlanıyorum?

GÜNCELLEME: Ben bu sistemin nasıl çalıştığı hakkında yeterli bilgi vermediği fark

. Elektronik sayfalarda depolanan bilgileri sunmak için HTML kullanıyorum (google sayfalar). Söz konusu kimlik, e-tablodaki bir girdiye yapılan başvurudır (sütun 1). Bu uygulamanın bir parçası değil, sadece veri almak için gereken row değerini geçmek için arıyorum. Bu değere sahip olursam, elektronik tablodaki diğer tüm değerleri almak için bir komut dosyası çalıştırabilirim.

+1

, sen = e.parameter.id' –

+0

Anladığımdan emin değilim o id 'gibi bir şey kullanarak almalısınız e.parameter' nesnesinin nasıl çalıştığını ve bu nesneye bir e-postada verilen bir “” dan nasıl geçtiğimi. – xxSithRagexx

+1

iletideki soruda olduğu gibi ilettiğinizde, URL'de soru işaretinin hemen ardından: HREF: ....... (okunabilirlik için http kaldırıldı) ... script.google.com/a/macros/ mycomp.com/s/blahblahmyID/dev?cID=1457989239035-cc3050b8 –

cevap

1

kimliği gibi bir şey kullanarak almalısınız, e.parameter nesnesinin bir özelliğidir id=e.parameter.id

Sen sağ url

soru işaretinden sonra, sorunuzu göstermek gibi iletebilirsiniz

HREF:https://script.google.com/a/macros/mycomp.com/s/blahblahmyID/exec?id=1457989239035-cc3050b8

sunucu kodu, değeri elde yerde saklayın ve istemci javaScript yapılmayacağını sorduğunda onu geri göndermek için hazır olacak.

altında Şematik örneğe bakın: Kimlik e.parameter nesnesinin bir özelliğidir

function doGet(e) { 
var id = e.parameter.id 
PropertiesService.getScriptProperties().setProperty('id',id); 
return HtmlService 
    .createTemplateFromFile('Index') 
    .evaluate() 
    .setSandboxMode(HtmlService.SandboxMode.IFRAME); 
} 
function returnID(){ 
    return PropertiesService.getScriptProperties().getProperty('id'); 
} 

// in your client javascript, add a call like this (outside of any function so it is executed on page load... or use onload="theFunctionName"...): 

google.script.run.withSuccessHandler(getID).returnID(); 
function getID(id){ 
    console.log(id); 
} 
+0

The setProperties (string, string)) 'bir yöntem olmadığını söyleyen bir hata ile geri geldi, ama etrafında bir iş buldum! Teşekkür ederim! Bu, uygulamalarımı ileride daha kullanışlı hale getirecek. :-) – xxSithRagexx

+1

Evet, bu bir yazım hatasıydı ... Bu durumda setProperty, birkaç dakika sonra güncelledim ama sen zaten aldın! Kabul etmek için teşekkürler. –

+1

Bir görev için bir erkeğim haha ​​:-D Tekrar teşekkürler! – xxSithRagexx