2012-11-14 47 views
1

是否存在將GAS字符串數組(在.gs文件中)轉換爲HTML文件中存在的javascript數組的簡單方法?我試圖使用jQuery來做東西,它需要(從我可以告訴)值在一個JavaScript數組。第一部分代碼是從聯繫人應用獲取電子郵件地址並返回字符串數組的函數。其餘的是帶有鏈接中斷的HTML樣本,以分隔它們的cajoled結果(至少我非常確定它們的cajoled結果)。此外,這基本上是我使用availableTags變量,你會看到如下內容:http://jqueryui.com/autocomplete/將GAS數組(在.gs中)轉換爲javascript數組(在.html中)

腳本文件,返回電子郵件地址的字符串數組

function getAllContacts(){ 
    var contacts = ContactsApp.getContactsByGroup(ContactsApp.getContactGroup("ContactsAppTest")); 
    var email = new Array(); 
    for(var i=0;i<contacts.length;i++){ 
    if(contacts[i].getPrimaryEmail() != ""){ 
    email.push(contacts[i].getPrimaryEmail()); 
    } 
    } 
    return email; 
} 

嘗試1,創建一個空的JS數組,並通過getAllContacts函數手動填充。這有效,但認爲這不是非常有效。

var availableTags = []; 
<? 
var temp = getAllContacts(); 
for (var i=0; i<temp.length; i++) { ?> 
availableTags.push(<?= temp[i] ?>); 
<?} ?> 

availableTags.push_m___?availableTags.push('[email protected]'):availableTags.m___('push',['[email protected]']);availableTags.push_m___?availableTags.push('[email protected]'):availableTags.m___('push',['[email protected]']);availableTags.push_m___?availableTags.push('[email protected]'):availableTags.m___('push',['[email protected]']); 

嘗試2,設置availableTags = getAllContacts功能

var availableTags = <?=getAllContacts()?>; 

availableTags='[email protected],[email protected],[email protected]' 

普通JS數組

var availableTags = ["[email protected]","[email protected]","[email protected]"]; 

availableTags=['[email protected]','[email protected]','[email protected]']; 

回答

2

嘗試這樣的事情了:

<? var temp = getAllContacts(); ?> 
var availableTags = <?= temp ? "[" + temp.toString() + "]" : "null" ?>; 

這應該初始化數組在clie上nt邊全部在一次。 (我不會太擔心效率,除非你處理的是成百上千的這些聯繫人。我自己,我會拍攝我發現最具可讀性的內容)。

更新:如註釋中所述,這將不起作用,因爲結果似乎是被引用的。 對該字符串使用new Function()eval()的其他努力失敗,可能是由於Gja在輸出中使用Caja消毒劑。這應該工作,而不是:

<? var temp = getAllContacts(); ?> 

    var array = null; 
    var str = <?= temp ? temp.toString() : "" ?>; 
    if(str) array = str.split(","); 
+0

謝謝,但這並沒有初始化它非常正確。它看起來像這樣: availableTags ='[email1 @ test1.com,email2 @ test2.com,email3 @ test3.com]'; 那裏的每個電子郵件地址都應該有一個單獨的索引。 是的,可能會有成千上萬的。除非有辦法根據用戶聯繫人列表和/或應用程序域「模擬」gmail將線路發送到自動填充。 – user1795832

+0

啊,老鼠。好的,用另一種應該工作的方法更新。 –

+0

是的,那更像是它。謝謝! – user1795832

相關問題