2011-05-02 64 views
5

嘿,那裏。 我必須使用Google Chrome瀏覽器框架來支持某些HTML5功能,例如適用於Internet Explorer 8的Canvas。 我已經實現了代碼,但它似乎根本無法工作。 檢查用戶是否已安裝GCF的腳本部分工作正常,它會顯示帶有指向安裝程序鏈接的重疊幀。 我已經安裝GCF,甚至重新啓動IE8,但它似乎並沒有運行。 當我去工具 - >管理加載項,它說它已安裝並運行,所以這不成問題。 我搜索了四周,發現你可以通過右鍵單擊頁面來檢查它是否處於活動狀態,它應該顯示一個上下文菜單。 這不會發生在我身上,而我的頁面剛剛在第一次使用canvas元素時拋出一個錯誤。 我已經使用了應該在我的頁面上激活GCF的元標記,但它似乎沒有做任何事情。谷歌瀏覽器框架不起作用

我的代碼:

<!DOCTYPE html> 
<html lang="en"> 
<head> 
<meta http-equiv="X-UA-Compatible" content="chrome=1"> 

的代碼最後一行應激活GCF渲染。 然後在我的網頁的結尾:

<script type="text/javascript" src="http://ajax.googleapis.com/ajax/libs/chrome-frame/1/CFInstall.min.js"></script> 
</body> 
</html> 

這應該運行一個腳本來檢查是否安裝了GCF(這工作)。 附上一份onload事件我的窗口,執行其中包含一個函數:

<body onload="init();" onunload="doLMSFinish();"> 

function init() { 
CFInstall.check({ 
    mode: "overlay", destination: "http://www.waikiki.com" 
}); 
} 

此代碼也用來檢查是否安裝了GCF(這也適用)。

任何想法? 我已經安裝了GCF,使用了正確的元標記,它應該激活GCF渲染,並且已經將這個元標記作爲我的標題塊中的第一項放置在頁面頂部。 它有什麼問題?

編輯:我正在測試這個本地網頁。這是它不起作用的原因嗎? 我正在處理的項目是本地運行的,而不是服務器端。 我已經不得不拋棄Chrome支持,因爲它只需而不是允許我加載本地xml文件(這是項目的核心功能)。

編輯#2:我已經上傳我的東西到FTP來檢查它是否會在線工作,但它仍然沒有。 我甚至做了一個小測試頁面,其中只包含基本的html框架,用於初始化chrome框架渲染的元標記以及用於加載圖像的一個畫布。 它只是加載畫布元素時出錯。

<!DOCTYPE html> 
<html lang="en"> 
<head> 
<meta http-equiv="X-UA-Compatible" content="chrome=1"> 
<script type="text/javascript"> 
    canvasSavannah = document.getElementById("savannahStatic"); 
    contextSavannah = canvasSavannah.getContext("2d"); 
    savannah = new Image(); 
    savannah.src = "savannah_static.png"; 
    savannah.onload = function() { 
     contextSavannah.drawImage(savannah, 0, 0); 
    }; 
</script> 
</head> 
<body> 
    <canvas id="savannahStatic" width="942" height="645"> 
    </canvas> 
</body> 
</html> 
+0

我見過這種情況,但我無法重現它。 – Wayne 2011-05-04 21:44:42

+0

在這裏找到更多信息http://www.google.com/support/forum/p/Chrome/thread?tid = 293d117c4759f8bf&hl = en – Wayne 2011-05-13 01:37:40

+0

要查看它是否是某種奇怪的高速緩存問題,元標記將隨機數添加到URL中,它會出現。 – Wayne 2011-05-13 01:47:12

回答

2

看一看javascript defer and async on html5

已經運行測試頁面,我注意到了JS嘗試初始化HTML已使之前。將腳本移動到頁面底部以使測試頁面正常工作。

<!DOCTYPE html> 
<html lang="en"> 
<head> 
<meta http-equiv="X-UA-Compatible" content="chrome=1"> 
</head> 
<body> 
    <canvas id="savannahStatic" width="942" height="645"> 
    </canvas> 
    <script type="text/javascript"> 
     canvasSavannah = document.getElementById("savannahStatic"); 
     contextSavannah = canvasSavannah.getContext("2d"); 
     savannah = new Image(); 
     savannah.src = "savannah_static.png"; 
     savannah.onload = function() { 
      contextSavannah.drawImage(savannah, 0, 0); 
     }; 
    </script> 
</body> 
</html>