2011-05-02 67 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>