通常情况下,IE 系列浏览器通过 ActiveX 插件使用 OBJECT 元素引入 Flash,而其他浏览器则是通过相应的 NPAPI 插件使用 EMBED 元素。这造成了各浏览器中插入 Flash 的方式的差异。
若仅仅使用 OBJECT 元素设置了 classid 属性引入 Flash,则可能造成在某些浏览器中 Flash 无法被引入。而若嵌套的 OBJECT 和 EMBED 元素参数不统一,也可能造成引入的 Flash 在各浏览器中出现差异。
原因:
对于 HTML4.01 规范中的 OBJECT 元素,IE 对 classid 属性有自己的解释方式:类标识符(class identifier)。格式形如:clsid:XXXXXXXX-XXXX-XXXX-XXXX-XXXXXXXXXXXX。由 ActiveX 组件注册在 Windows 的系统注册表中。
codebase 属性则为该类标识符所对应的 ActiveX 插件的 URI 地址。一般是一个 .cab 安装包。(更多请参考 MSDN:CLASSID Attribute | classid Property及Class Identifier中的内容。)
EMBED 元素则是由 NetScape Navigator 2 引入,用于在 HTML 文档中插入符合网景插件应用程序编程接口(NPAPI)规范的插件。NPAPI 插件是跨平台的,并可以在所有实现了此接口规范的浏览器中使用。目前的主流浏览器中 IE 系列以外的浏览器均支持 NPAPI 插件。
事实上 IE3.0 就支持 NPAPI,但是在 IE5.5 SP2 后微软出于安全考虑停止了对 NPAPI 的支持,转而推荐用户使用其 ActiveX 技术作为替代。(更多请参考 MSDN:Netscape 式的插件在升级 Internet Explorer 后不工作)
EMBED 元素拥有一个名为 pluginspage 的属性,其值为 NPAPI 插件的 URL,与 IE 中 OBJECT 元素的 codebase 属性类似,它告诉了浏览器插件的下载地址。
EMBED 元素不属于 HTML4.01 规范中的元素,HTML 文档中直接使用 EMBED 元素可能无法通过 W3C 校验。不过 EMBED 元素目前已经被添加到 HTML5 草案中。(参加 HTML5 草案:4.8.3 The embed element)
至此若需要在 HTML 文档中引入一个已安装的通用的插件,如 Flash,则在 IE 中使用 OBJECT 元素,非 IE 中则使用 EMBED 元素。此外 IE 中也支持 EMBED 元素引入设置了正确 MIME 的插件。
分享到:
相关推荐
本篇文章将深入探讨如何将CEF浏览器嵌入到Win32窗口中,基于CEF版本2171,这个版本被认为具有较高的稳定性和兼容性。 首先,理解CEF的基本工作原理是至关重要的。CEF的核心是Chromium的开源组件,它负责处理HTML、...
这个压缩包文件“Java-Swing嵌入浏览器(本地浏览器和webkit浏览器-火狐内核)”显然提供了一个实现这一功能的示例,主要涉及到的技术是DJnative-SWT和SWT。 DJnative-SWT 是一个开源项目,它的目标是将Java和...
C#是一种面向对象的编程语言,广泛用于开发Windows桌面应用、Web应用以及游戏等。在这个场景下,C#结合.NET Framework,可以利用Windows API和WebBrowser控件来实现浏览器功能。WebBrowser控件是.NET Framework提供...
4. **加载CEF浏览器**:创建CEF的Browser对象,并将其放入Qt的容器部件中。这通常通过CEF的CefBrowserHost类实现。 5. **处理Qt与CEF的交互**:为了实现Qt和CEF之间的通信,需要使用CEF的...
在本文中,我们将深入探讨如何在MFC(Microsoft Foundation Class)应用程序中嵌入谷歌的CEF7(Chromium Embedded Framework)浏览器。CEF是一个开源框架,它允许开发者将谷歌Chrome的渲染引擎集成到自己的应用中,...
在MFC中嵌入Web浏览器主要涉及到ActiveX技术,这是微软提出的一种组件对象模型,可以实现不同应用程序间的交互。Web浏览器控件,即IE浏览器的核心,是一个ActiveX控件,称为`Internet Explorer WebBrowser Control`...
这篇博客文章“在SWING、SWT中嵌入浏览器”就探讨了如何在Java应用中实现这一功能。 首先,SWING是Java Foundation Classes (JFC)的一部分,提供了丰富的组件和布局管理器来构建复杂的用户界面。尽管SWING本身并不...
本文将深入探讨如何在JAVA GUI中嵌入浏览器页面,以实现类似的功能,如在桌面应用中打开和显示网页。 首先,我们需要了解的是Java中用于嵌入浏览器的API——Java Desktop Integration Components (JDIC)。JDIC 是一...
3. **嵌入浏览器组件**:在MFC应用中,我们需要创建一个CEF浏览器对象,并将其与MFC的窗口控件关联,以便在MFC的窗口中显示网页内容。 实现这个功能的关键步骤包括: 1. **设置项目依赖**:首先,确保你的项目链接...
Java嵌入浏览器技术是将一个完整的网页浏览功能集成到Java应用程序中的方法,使得开发者可以在Java应用内部展示网页、实现Web应用交互。JxBrowser是一款专为此目的设计的库,它提供了一个API,允许Java开发者轻松地...
在javascript中对象通常包括两种类型:内置对象和浏览器对象,此外,用户还可以自定义对象。 对象包含两个要素: 1. 用来描述对象特性的一组数据,也就是若干变量,通常...当前窗口中的嵌入对象 event 浏览器中发生的
本文将深入探讨如何利用C#和.NET框架,通过Xilium.CefGlue库来在WinForm应用中嵌入基于谷歌Chromium内核的浏览器。 首先,Xilium.CefGlue是C#的一个封装库,它为.NET开发者提供了与Chromium Embedded Framework...
3. **创建WKE浏览器控件**: 在Duilib的窗口布局中定义一个新的控件类型,通常是一个子窗口,然后在这个子窗口中实例化WKE的浏览器对象。 4. **C++与JS交互**: WKE支持通过JavaScript接口与C++代码进行通信。例如,...
"Swt嵌入浏览器"这一主题涉及到如何使用SWT库在Java应用中嵌入一个功能完整的浏览器引擎。 SWT是Eclipse基金会开发的一个开源GUI库,它允许Java开发者创建与本机系统更加紧密集成的图形用户界面。与传统的Java ...
这个对象可以被嵌入到一个自定义的窗口或控件中,如TCustomForm或TControl。在C++Builder中,你可以使用VCL组件,如TLayout或TPanel,作为浏览器的容器。通过调用CefBrowser对象的`CreateBrowserSync`或`...
这个版本的组态王提供了丰富的图形组件和控制对象,包括按钮、文本框、图表等,用户可以通过拖放方式构建自己的监控界面。同时,它支持多种编程语言,如VBScript和JavaScript,用于编写自定义的逻辑控制。 集成网页...
在本项目中,“delphi实现简单浏览器”是一个使用Delphi进行开发的轻量级网页浏览应用。 这个项目的核心是TWebBrowser控件,它是Delphi提供的一个组件,用于在应用程序中嵌入Internet Explorer(IE)引擎。...
你可以通过`ChromiumWebBrowser`对象来控制浏览器的行为,如导航、注入JavaScript代码、处理各种事件等。例如,设置加载完成事件: ```csharp browser.LoadCompleted += (sender, e) => { Console.WriteLine("页面...
在VB6(Visual Basic 6)中嵌入谷歌浏览器,主要涉及到的是ActiveX技术的应用,以及与WebBrowser控件的交互。以下将详细介绍这个过程,包括相关知识点和步骤。 首先,VB6是一个经典的Windows应用程序开发环境,它...
5. `pbjsxwv2test.pbl`:这是一个PowerBuilder库文件,包含实现浏览器控件功能的源代码和对象。 6. `pbjsxwv2test.pbt`:这可能是项目文件,定义了测试应用程序的结构和依赖关系。 7. `pbjsxwv2test.pbw`:这应该...