Delphi 获取对IHTMLCANVASELENT的引用

Delphi 获取对IHTMLCANVASELENT的引用,delphi,internet-explorer,dom,mshtml,Delphi,Internet Explorer,Dom,Mshtml,如何获取画布句柄的DOM引用。我使用的是Delphi、IE11和相应的MSMSHTML类型库,我怀疑它与 canvasHandle := (HTMLDoc3.getElementById('canvas') as IHTMLCanvasElement); Html: <canvas id="canvas"> .... </canvas> .... 但是,这会引发异常“接口不受支持”TWebBrowser控件,默认情况下使用IE7标准/呈现模式。 您需要告诉控件

如何获取画布句柄的DOM引用。我使用的是Delphi、IE11和相应的MSMSHTML类型库,我怀疑它与

canvasHandle := (HTMLDoc3.getElementById('canvas') as IHTMLCanvasElement);
Html:

<canvas id="canvas">
  ....
</canvas>

....

但是,这会引发异常“接口不受支持”

TWebBrowser
控件,默认情况下使用IE7标准/呈现模式。
您需要告诉控件使用最新的标准。 有几种方法可以做到这一点

以下是我知道的两种方法:

  • 您可以在注册表中为您的应用程序指定
    功能\
    。(例如,也是一篇好文章)

  • 在网页的
    块中添加
    “meta-http equiv-'X-UA-Compatible'content=edge”
    ,以强制Windows IE使用最新标准。
    这将使您的HTML5功能在不需要注册表调整的情况下工作


您是否使用
TWebBrowser
控件获取
HTMLDoc3
?如果是,那么我想您需要为它指定渲染/浏览器模式。默认渲染模式为IE7。在网页的
块中查找或添加
“meta-http equiv-'X-UA-Compatible'content=edge”
,以强制Windows IE使用最新标准。是的:我应该说明这一点,我正在使用TWebBrowser控件,但是HTMLDoc3工作正常,因为我在其他标签上测试了它,没有任何问题。看起来很有希望的是,将“meta http equiv-'X-UA-Compatible'content=edge”放在一个网页块上,应用Kobik的添加建议“Meta http等价物”确实解决了问题,如果作为答案发布,将接受,@kobik,ping:-)标记,请在用户名前使用
@
通过评论通知我们。我们不需要这样做,因为你是帖子的所有者,所以我们会随时通知你。谢谢@特拉马,“科比克”回复:谢谢:)