Google Chrome Frame不起作用

Jor*_*ort 5 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">
Run Code Online (Sandbox Code Playgroud)

最后一行代码应该激活GCF渲染.然后在我的页面结尾处:

<script type="text/javascript" src="http://ajax.googleapis.com/ajax/libs/chrome-frame/1/CFInstall.min.js"></script>
</body>
</html>
Run Code Online (Sandbox Code Playgroud)

这应该运行一个脚本,检查是否安装了GCF(这是有效的).我将一个onload事件附加到我的窗口,执行一个包含以下内容的函数:

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

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

此代码还用于检查是否安装了GCF(这也有效).

有任何想法吗?我已经安装了GCF,使用了应该激活GCF渲染的正确元标记,并将此元标记放在我页面顶部作为标题块中的第一项.它出什么问题了?

编辑:我在本地网页上测试这个.这是它不起作用的原因吗?我正在研究的项目是在本地运行,而不是在服务器端运行.我已经有干脆抛弃浏览器的支持,因为它根本就不是让我加载本地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>
Run Code Online (Sandbox Code Playgroud)

Gev*_*ous 2

看看html5 上的 javascript defer 和 async

运行测试页面后,我注意到 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>
Run Code Online (Sandbox Code Playgroud)