问题标签 [shim]

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.

0 投票
1 回答
370 浏览

javascript - 创建一个覆盖整个页面的垫片,但允许在后台发生鼠标悬停事件

我需要为整个页面创建一个 shim 来捕获点击事件,但是 shim 不能停止页面上其他 html 元素上的其他事件,例如 mouseover 等。

我有这样的解决方案,但我有几个问题:每当我点击页面时,如果我直接点击一些文本,垫片的点击事件不会触发(没有事件取消在页面上)。

onclick 问题只发生在 IE 中。

在 FF 和 Chrome 中,存在鼠标悬停事件未在后台触发的问题,因此我当然也会感谢任何解决该问题的提示......

这是一个演示问题的非常基本的示例。

有任何想法吗?:-)

0 投票
1 回答
3620 浏览

javascript - HTML5 垫片后备?

可能重复:
禁用 JavaScript 时 IE6 中的 HTML5

我现在听到很多关于使用 HTML5 的讨论,并且只是依靠 javascript shim 作为 < IE8 的后备。但是如果用户禁用了 javascript 会发生什么?这是一个棘手的情况。html5 shim 回退是否有回退?你对此事有何看法?

0 投票
4 回答
7043 浏览

css - Bikeshedding CSS3 属性替代方案?

bikesheddingCSS3属性有什么替代品吗?好像还不支持。

0 投票
6 回答
93934 浏览

terminology - 垫片和 polyfill 有什么区别?

两者似乎都用于 Web 开发界,请参见HTML5 Cross Browser Polyfills,其中说:

所以在这里我们收集了所有的 shims、fallbacks 和 polyfills...

或者,有es5-shim项目。

在我当前的项目中,我们使用了其中的一些,我想把它们都放在同一个目录中。那么,我应该怎样称呼这个目录---shimspolyfills

0 投票
2 回答
1296 浏览

html - 屏蔽插件(或小程序)以在 Mac 上的 Chrome 中显示 html 内容

对于我在 Windows 和 MacOSX(包括 Windows 下的 Chrome)中尝试过的所有其他浏览器,使用“iframe shim”可以正常工作。但是,我无法让 iframe 垫片在 Mac 上的 Chrome 中处理我们的插件。

谷歌搜索了问题并进行了一些测试,它似乎取决于对象。我找到了一个使用 StreetView(一个 Flash 对象)的示例,它可以工作,另一个示例使用 Java Applet,但它不起作用。

一些链接:

这是该方法的描述:http ://www.oratransplant.nl/2007/10/26/using-iframe-shim-to-partly-cover-a-java-applet/

这个使用 Java Applet 的示例来自上述文章:http ://www.oratransplant.nl/files/iframe_shim.html

这是使用街景的工作版本:http: //gmaps-samples.googlecode.com/svn/trunk/streetview/iframeshim.html

通过在 Chrome 中检查(和编辑)元素并在两个示例页面之间复制对象,flash 对象似乎只允许 iframe shims(在 Mac 上的 Chrome 中),但 Java Applet 不允许。

在我们的例子中,我们使用的是使用 Firebreath 构建的自定义插件。

可能是我需要在我们的插件中实现额外的功能,模仿 Flash 正在做的任何事情,但这很可能是由 Chrome 的 Mac 版本中的错误引起的。

任何人都可以帮忙吗?我们确实希望能够在我们的插件上显示 HTML 元素,并且 iframe shim 几乎适用于所有浏览器/操作系统组合!

0 投票
6 回答
160946 浏览

javascript - HTML5中的polyfills是什么意思?

HTML5中的polyfills是什么意思?我在很多关于 HTML5 的网站上看到了这个词,例如HTML5-Cross-Browser-Polyfills。

因此,我们在这里收集了所有的 shims、fallbacks 和 polyfills,以便将 HTML5 功能植入本身不支持它们的浏览器中。

我其实不明白 polyfills 是什么意思。

它是一种新的 HTML5 技术还是一个 JavaScript 库?在 HTML5 之前我从未听说过这个词。

shims、fallbacks 和 polyfills 之间有什么区别?

0 投票
1 回答
343 浏览

javascript - 使用 html5shim 库而不是 document.createElement('header') 有什么好处吗?

使用和使用有什么区别

反而

0 投票
1 回答
492 浏览

javascript - IE - 如何将客户端图像文件读取为 base64

我很想知道是否有办法用 IE8 读取本地文件(如 FF File API 那样)?我的意思是使用 Internet Explorer 8 读取图像文件并将其转换为 base64 编码,然后将其分配给 JavaScript 变量。

我知道FF有办法,但是IE8可以吗?我找不到任何显示效果的完整片段,因此非常感谢任何有用的教程:)

0 投票
2 回答
2168 浏览

javascript - 跨浏览器比较文档位置

DOM4 比较文档位置

我想实现 compareDocumentPosition。Resig 在这方面取得了良好的开端。我已经拿走了他的代码并整理了它

这适用于Element但不适用于Textor DocumentFragment.sourceIndex这是因为 IE8在这些节点上没有给出。(它也没有给出.contains,但我已经解决了这个问题)

如何有效地编写与DOCUMENT_POSITION_FOLLOWINGDOCUMENT_POSITION_PRECEDING对应的+=4和位。+=2

作为额外参考,这两个由 DOM4 定义为的树顺序定义

如果 A 和 B 在同一棵树中并且 A 在树顺序中位于 B 之前,则对象 A 在对象 B 之前。

如果 A 和 B 在同一棵树中并且 A 按树顺序在 B 之后,则对象 A 跟随对象 B。

树顺序是前序,深度优先遍历。

大多数现代浏览器都实现了这一点(包括 IE9)。所以你只需要在 IE8 中工作的东西(我不关心 IE6/7,但如果它工作得很棒!)

0 投票
1 回答
595 浏览

android - 旋转所有 OpenGL 输出

外部需求——你必须讨厌它们……

我有一个 OpenGL ES 游戏,它使用 EGL 和 OpenGL ES 在屏幕上绘图。我没有这方面的资料;它作为二进制 blob 提供。我正在实现在游戏对 EGL 和 OpenGL 的调用与平台的实现之间进行调解的接口层。

它工作正常。但是我现在有一个意想不到的外部要求,我需要能够将整个游戏的输出旋转 90 度。

谁能建议任何好的(简单,快速)方法来做到这一点?在我的脑海中,我能想到:

  • 将适当的变换插入游戏的投影矩阵。在我看来,这似乎是最快的解决方案;但我认为我对游戏对投影矩阵的操作没有足够的知识来可靠地做到这一点。另外,如果它使用任何 OpenGL 调用来访问不通过投影矩阵的屏幕,它会混淆游戏。(glReadPixels()例如。)

  • 为游戏提供屏幕外缓冲区的渲染上下文;它在那里渲染,然后当游戏调用时,eglSwapBuffers()我将结果复制到屏幕上。渲染到纹理在这里会有所帮助。问题:这会影响性能,因为我实际上是在进行两次绘图而不是一次;并且渲染到纹理在 OpenGL ES 中没有标准化。(我的目标平台 Android 甚至不可靠地支持共享上下文。)

  • 渲染到颜色缓冲区,然后使用glReadPixels()将数据复制出来并在屏幕上进行软件旋转。问题:非常慢,而且我无法控制缓冲区的大小(即如果屏幕是 640x480 并且我们正在绘制 90° 旋转,我真的想给游戏一个 480x640 的颜色缓冲区)。

  • 其他?

特定于游戏的黑客在这里不是一个选项,因为我需要能够将游戏二进制文件换成另一个;这必须是一个通用的修复。更改游戏不是一种选择,因为我们无法控制游戏源代码。

有什么建议么?除了试图说服要求离开的非技术性问题之外?