嘿。
我必须使用Google Chrome浏览器内嵌框架来支持某些HTML5功能,例如Internet Explorer 8的Canvas。
我已经实现了代码,但是它似乎根本不起作用。
脚本的检查用户是否已安装GCF的部分,它将显示覆盖框架以及指向安装程序的链接。
我已经安装了GCF,甚至重新启动了IE8,但它似乎根本没有运行。
当我转到“工具”->“管理加载项”时,它说它已安装并正在运行,所以这不是问题。
我四处搜寻,发现您可以通过右键单击页面来检查它是否处于事件状态,它应该显示一个上下文菜单。
这对我而言不会发生,并且我的页面在我第一次使用canvas元素时会引发错误。
我使用了应该在页面上激活GCF的meta-tag,但它似乎根本没有任何作用。

我的代码:

<!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渲染的正确的meta标签,并将此meta标签作为标题块中的第一项放在了我页面的顶部。
它出什么问题了?

编辑:我正在本地网页上对此进行测试。那是为什么它不起作用的原因吗?
我正在处理的项目旨在在本地运行,而不是在服务器端运行。
我已经不得不放弃Chrome支持,因为它只是而不是允许我加载本地xml文件(这是项目的核心功能)。

编辑#2:我已将我的资料上传到FTP,以检查它是否可以在线工作,但仍然无法正常工作。
我什至制作了一个小的测试页,其中仅包含基本的html框架,用于初始化chrome框架渲染的meta标签以及一个用于加载图像的 Canvas 。
它只是在加载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>

最佳答案

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

10-02 13:21