问题标签 [polyfills]

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 投票
4 回答
1646 浏览

javascript - Is there a (polyfill) code that resets all the inherited CSS properties on a given element?

The subject says it all. Looking for a (polyfill) code that will reset all the inherited CSS properties on a given element (such as <img>, <a> or <p>).

0 投票
3 回答
159 浏览

javascript - 如何在 JavaScript 中填充属性?

给定一个事件的属性,该属性将以浏览器为前缀,我想创建一个 polyfill 使其看起来没有前缀。

例如,接口FooEvent有一个属性webkitBar,我想让它看起来就像bar这样,处理程序可以写成onFoo = function(e) { console.log(e.bar); }

我最初的笨拙猜测是在原型中注入一些东西FooEvent.prototype.getBar = function() { return this.webkitBar; }。但是,我不确定如何。

0 投票
1 回答
2892 浏览

javascript - 针对 ECMAScript5 新功能的 Polyfill 或变通方法?

我想用现在和将来都可以使用的新ECMAScript5 功能编写我的 JS 代码。

由于并非所有浏览器都支持所有功能(尤其是 IE),例如Object.createArray.isArrayJSON.

我知道一些解决方法,例如json2.js用于归档JSON支持。我想了解其他功能的更多 polyfill 或解决方法。

0 投票
3 回答
3829 浏览

css - respond.js polyfill 不适用于 IE8 中的最后一个媒体查询

我的 css 中有两个媒体查询(不包括打印的): @media screen and (min-width: 720px) {}@media screen and (min-width: 1026px) {

我正在使用 respond.js 让它们在 IE8 下运行。奇怪的是它工作得很好,除了最后一个媒体查询,它在媒体查询之前恢复到 css。即,在窗口的宽度达到 1026px 阈值之前,它运行良好。

有人知道那里发生了什么吗?这是预览的链接:http: //bit.ly/i6ITPe

非常感谢您的任何回答

0 投票
3 回答
30641 浏览

javascript - Modernizr 与 Respond.js

我正在仔细评估利用ModernizrRespond.js进行响应式设计的最佳方式,并向社区提出几个问题。

首先,据我了解,在将 Modernizr 与 Respond.js 捆绑在一起时,IE8 及以下版本的媒体查询支持不需要其他编码或测试。换句话说,当 Respond.js 与 Modernizr 捆绑在一起时,我只需在我的源代码中加载 Modernizr 即可激活 Respond.js。正确的?

其次,您认为这是在 IE8 及以下版本中实现对媒体查询支持的最有效方式吗?本质上,我将包含一个比已经支持媒体查询的浏览器所需的更大的 Modernizr 脚本。如果媒体查询测试失败,将两个脚本分开并仅加载 Respond.js 不是更有效吗?

第三,如果我想将这两个脚本分开,如果需要,您认为加载 Respond.js 的最佳方式是什么?一种选择是使用 IE 特定的条件注释来加载响应。另一种选择是使用 yepnope 和 Modernizr 来测试媒体查询支持并在需要时加载 Respond。这将更有效和防错。

最后,如果我选择分离两个脚本并在需要时使用 Modernizr 加载 Respond,我遇到了以下两种技术:

或者

我发现第二个崩溃 IE8,但必须只需要重写。你会推荐哪种技术?

感谢所有的帮助。

0 投票
1 回答
1980 浏览

html - 哪个 HTML5 形成 javascript polyfill 具有最广泛的功能和浏览器范围?

HTML5 中的新表单属性和标签非常棒。不幸的是,Chrome 和 Firefox 对这些功能的支持有限,在 IE9 及更低版本中基本上不支持这些功能。

我研究了使用 Modernizr 和 HTML5 polyfills 在缺乏本机支持的浏览器中填充此功能。但是,似乎有大量用于 HTML5 表单功能的 polyfill,例如 webshims lib、webforms2 和 h5f(参见例如https://github.com/Modernizr/Modernizr/wiki/HTML5-Cross-Browser的列表-Polyfills),我不确定我应该花时间学习哪一个或哪一个。

就 HTML5 功能和浏览器覆盖率而言,这些 HTML5 表单 polyfill 中的哪一个可以为我提供最广泛的覆盖?

0 投票
2 回答
2836 浏览

javascript - 如何填充 RadioNodeList?

背景

根据WHATWG someForm.elements应该返回一个HTMLFormElementsCollection.

如果多个元素共享相同的名称,则AHTMLFormElementsCollection返回 a 。RadioNodeList

RadioNodeList具有特殊的value语义,它返回节点列表中第一个检查的无线电列表的值。

如果实施,这将允许以下答案起作用

天真地尝试了一个基于行为良好的主机对象(根据 WebIDL)的 polyfill,但显然它们不是。

问题

当我们等待浏览器成为 RadioNodeList 或 WebIDL 兼容时,这个 polyfill 的替代有效实现是什么?

示例参考代码

天真的尝试参考代码

0 投票
1 回答
165 浏览

javascript - 将输入设置为其最近的有效值

我正在尝试为 HTML5 的input type="number"元素编写一个 polyfill。如果您的浏览器已经支持它,这是一个比较示例。

如果您输入的值无法解析为数字,例如“abc”,则当您进行模糊处理时,Chrome 会将该值设置回您最近的有效值。我想我可以通过在data-字段获得焦点时将值存储在属性中来做到这一点,以防万一我需要将其设置回来,但是有没有更自然的方法来“记住”表单字段的最新有效值有?

0 投票
1 回答
152 浏览

html - Opera:用于 HTML5 菜单标签的 polyfill,类型:command

有人知道吗?Firefox 和 Chrome 做对了;Opera 只显示一个正方形 +。

0 投票
2 回答
829 浏览

javascript - 如何正确填充 elem.hidden

介绍

elem.hidden是一个允许隐藏元素并检测它们是否被隐藏的新属性。

浏览器支持不是很好,所以我想对其进行填充。如果我要填充这个属性,那么在通过elem.style.

Shim 的简单实现

问题

  • 它应该设置elem.style.display"none"or<original value>吗?
  • 它应该设置elem.style.visibility"hidden"or"visible"吗?