Google Chrome Frame不起作用

时间:2011-05-02 08:49:24

标签: google-chrome canvas frame

嘿那里。 我必须使用Google Chrome Frame来支持某些HTML5功能,例如Canvas for Internet Explorer 8。 我已经实现了代码,但它似乎根本不起作用。 检查用户是否已安装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支持,因为它只是 NOT 允许我加载本地xml文件(这是项目的核心功能)。

编辑#2:我已经将我的东西上传到FTP以检查它是否可以在线工作,但它仍然没有。 我甚至做了一个小测试页面,它只包含基本的html骨架,初始化chrome框架渲染的元标记,以及一个加载图像的画布。 它只是在加载canvas元素时出错。

<!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>

1 个答案:

答案 0 :(得分: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>