2012-10-13 87 views
0

我一直在嘗試編寫一個帶有Google+徽章的小型Google應用程序腳本,如here所示。爲此,我有一個純HTML文件,其中包含了該頁面上顯示的HTML。 HTML頁面如下:Google應用程序腳本:HTML代碼中的Javascript代碼不起作用

<html> 
<body> 
<div class="g-plus" data-href="{Page-Link}" data-rel="publisher"></div> 

<script type="text/javascript"> 
    (function() { 
    var po = document.createElement('script'); po.type = 'text/javascript'; po.async = true; 
    po.src = 'https://apis.google.com/js/plusone.js'; 
    var s = document.getElementsByTagName('script')[0]; s.parentNode.insertBefore(po, s); 
    alert("Added Badge!"); 
    })(); 
</script> 

</body> 
</html> 

結果是空白頁。沒有徽章添加到頁面。我認爲這是因爲JavaScript函數沒有運行(我添加了一個警報,並沒有任何彈出窗口)。我無法弄清楚爲什麼函數沒有運行。

任何幫助表示讚賞。

+0

'data-href'屬性必須是您的Google個人資料網址。 – Jay

+0

我已將鏈接指向Google個人資料。但它仍然不顯示徽章。 – user1679030

+0

查看提供的html源代碼,看起來plusone.gs庫不能在caja編譯器中生存。 – Mogsdad

回答

0

不幸的是,我對Javascript的使用經驗不太熟悉,所以我在這裏猜測。前段時間,我在coffeescript中進行了編程,它的編譯器會自動將生成的代碼封裝在函數中,就像在代碼中一樣。這個功能被稱爲:

(function() {//...}).call(this); 

也許這個工程。

或者,您可能希望將警報測試移到徽章生成上方。這將顯示如果JavaScript運行。也許錯誤在於你的徽章創建代碼。

我最終的想法是命名你的函數並將它註冊爲body.onload的回調函數。在訪問dom之前讓瀏覽器加載頁面總是一個好主意