问题标签 [browser-plugin]
For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.
deployment - 以最少的用户步骤部署 NPAPI 插件
情况:我已经为我的 IE 用户编写了一个运行良好的 ActiveX 控件。我构建了 .ocx,将其 CAB,签名,然后使用 EMBED 标签将其放在网站上。用户加载页面,黄色栏出现询问他们是否要安装它:他们所要做的就是点击它,我们就走了。
现在我需要构建对 FF、Chrome 和 Safari(在 Mac 上)的支持。根据我的研究,NPAPI 是做到这一点的方法,而 Firebreath 应该让它更容易。但从我所读到的,部署并不是那么容易。Windows 用户必须在 DLL 上运行“regsvr32”(我的网络用户实际上都不会这样做)。我不知道在 Mac 上会发生什么。我相信用户必须将它复制到 /Library/Internet\Plugins/ 之类的目录,这也是部署的非启动器。Firefox 用户将下载/运行 .xpi。Chrome 应该运行 .crx。
有没有人有这方面的经验?您如何为其他三大浏览器进行易于用户运行的 NPAPI 插件部署?
c++ - 编写一个 3D 渲染浏览器插件
我知道可以为浏览器编写一个插件,让您渲染到浏览器窗口,这样您就可以在浏览器中有效地运行普通应用程序。不使用 JS 或客户端技术,而是一个基本上包装您的应用程序的插件——在我们的例子中是 C++,它使用 DirectX 或 OpenGL 进行 3D 渲染。
我知道我们必须有 IE 和其他浏览器的版本,但这是如何工作的 - 在 Windows 中,我们是通过插件架构获得 HWND 还是更复杂?
您是否必须编写为每个平台编译的插件版本 - Win/Mac/Linux,因为插件是二进制文件,我认为是这种情况,所以您有一个 IE 版本,然后有多个 FF、Chrome 版本, Safari(共享相同的插件设置 IIRC)
使用 FF - 这是一个插件或扩展的例子吗?
我的意思的一个例子是QuakeLive - 在浏览器中进行适当的 3D 渲染。我们实际上使用的是 Ogre(跨平台 C++),但这使用的是 Direct3D/OpenGL,所以它是一回事。
c++ - 你可以在浏览器插件中使用 Win32 GUI 吗?
当然这意味着你的插件不是跨平台的,但让我们专注于技术方面......
浏览器插件(如在 NPAPI 中所做的)是否受限于它的功能?或者您是否可以自由支配访问 PC 和您获得的渲染窗口?例如,您可以通过这种方式在浏览器中创建 Win32/MFC 控件吗?
一个附带问题 - 您的浏览器插件在概念上是否类似于 .DLL,因此它只是实现浏览器控制/通信的特定接口的任意编译代码?
plugins - Unity3D 的网络部署如何工作?
只需单击一个按钮,它就非常流畅且跨浏览器/平台,这使非技术人员得出结论,整个引擎本质上比我们现在使用的要好。仅仅是他们花时间实现了 Unity WebPlayer 的所有浏览器/操作系统插件版本并对其进行了改进,还是引擎架构的设置方式有什么更深层次的?
npapi - 我必须制作多少个版本的 NPAPI 浏览器插件?
我知道如果我编写一个 C++ 插件,那么我至少需要有 Linux、Mac、Windows 版本,但完整的组合列表是什么?许多浏览器都支持 NPAPI,这是否意味着完全相同的已编译 NPAPI 插件二进制文件/安装程序/任何适用于 Windows 的东西都可以在 Windows 上支持 NPAPI 的所有浏览器中使用?或者您是否必须以某种方式为每个浏览器分别“编译”相同的插件代码?
c++ - 使用 firebreath 的浏览器插件
我已经使用 firebreath 构建了示例插件。现在我打算编写一个插件来捕获网页中的所有事件。
请帮助如何使用 firebreath 做到这一点?
谢谢你。
.net - Roozz 浏览器插件如何实现它的跨平台能力
我遇到了来自roozz.com的浏览器插件,我用LinqPad试了一下, 在这里试试。他们说有一个转换过程,基本上可以接受任何 exe 并将其转换为他们的平台,然后可以通过所有主要浏览器在 windows、mac、linux 上运行。
当我深入了解正在发生的事情时,至少对于 Windows 7 上的 LinqPad,它所做的只是将 linqpad exe 下载到我的用户 AppData/Local 文件夹并将其托管在 chrome 中。有趣的是,我可以在浏览器之外启动 exe 并正常运行。我什至能够卸载 Roozz 插件并像往常一样继续启动该应用程序。
我的主要问题。
- 这真的是跨平台的吗,我可以在 windows、mac 和 linux 上运行 .NET 4.0 WPF 应用程序,还是只能在 windows 上运行 windows 应用程序和 mac 上的 mac 应用程序?
- 一般来说,这个插件在做什么,有什么限制?
编辑: 澄清一下,这不是关于浏览器插件的一般工作方式,而是关于这个插件如何运行专门为一个平台编写的应用程序并在不兼容的平台上运行。
进一步的测试表明,他们的说法存在一些 BS,或者至少是一些令人困惑的“炒作”,因为 LinqPad 实际上不能在 MacOSx 上运行。尝试运行您获得的应用程序时,
“Roozz 平台尚不支持您的操作系统。但我们正在努力。”
javascript - 将不同的 youtube 视频声音路由到不同的输出
我不太确定这是否可能,但这是我想做的:
我想在一个页面上有 2 个不同的 youtube 视频(使用 js api 实例化),我想将其中一个的声音路由到常规扬声器,将另一个的声音路由到耳机。
我非常愿意接受任何可能的解决方案,任何建议都将不胜感激!
direct3d - 使用 NPAPI + D3D 编写插件。它可以在 Firefox 上运行,但浏览器会黑屏。为什么?
我正在编写一个插件,使用 NPAPI 和 D3D。我只是简单地将来自 DXSDK 和 NPAPI 的 D3D 示例放在一起。当插件启动时我收到一个 HWND,然后我将它传递给 D3D 进行绘制。
它虽然有效。测试页上的控件(400 * 300 矩形)确实显示了我的预期。
但是 FireFox 窗口中的所有其他区域都是黑色的,包括菜单栏。测试页面上的所有其他内容都看不到。
我只用 HWND 尝试了 InitDevice(D3D) 并且根本不进行渲染。但仍然遇到同样的问题。
有人可以帮我吗?
npapi - 我正在寻找一个 NPAPI 插件吗?
我需要为 Firefox、Chrome、Operah 和 Safari 开发一个迷你 ClickOnce 插件(最好是适用于上述所有功能的插件)。
我的插件需要能够以一键式方式运行应用程序。换句话说,通过转到特定的 URL,我的应用程序将在目标机器上运行(不显示提示/对话框)。不幸的是,ClickOnce 仅适用于 IE,我对当前存在的 ClickOnce 插件不满意。我想开发一个适合我特定需求的定制 ClickOnce 插件。
我读到了 FireBreath,这对我来说听起来像是一个完美的解决方案。我还阅读了扩展程序和插件之间的区别,我认为插件是我正在寻找的。我只是想和你们一起确保我走在正确的道路上。我想通过 FireBreath / NPAPI 插件实现什么?插件可以下载可执行文件然后在目标机器上运行吗?