问题标签 [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.
internet-explorer-8 - Webshims Lib - IE8 的媒体查询
我正在尝试使用 Webshims Lib 让媒体查询在 IE8 中工作。我已经按照设置说明加载了默认的(所有)polyfill,但它似乎不起作用。
我仍然应该明确包含 html5shiv 吗?我以为 Webshims Lib 会处理它?
干杯。
jquery - IE7 和 8 中的白页 - Webshims / Polyfill 问题
我刚刚使用 Twitter Bootstrap 和 Wordpress 完成了一个小型 Web 项目,但不幸的是 Internet Explorer 存在一些问题。Opera、Safari 和 Chrome 无错误地显示页面。
在 IE10 和 IE9 中一切看起来都不错,但 IE8 和 IE7 只显示一个白页。我已经进行了谷歌搜索以找到解决“白屏死机”(WSOD)的方法,但我很失望。
我还对页面本身进行了一些调试。通过这种方式,我发现 HTML5 表单的 polyfill 导致了问题。为此,我正在使用Webshims。在页面上它声明了 IE6+ 兼容性,但正如您所见,情况并非如此,这很奇怪。
所以我查看了 FireBug 控制台,看看是否有任何 JavaScript 错误。没有任何错误,但有一个警告,位于导致问题的脚本中:
Call webshims.polyfill before DOM-Ready or set waitReady to false.
所以我查看了文档并设置waitReady
为,false
因为我在页面底部加载了脚本。结果,警告消失了——但 IE8 和 IE7 仍然只显示一个白页!作为测试,我再次删除了对脚本的调用,该页面在 IE8 和 7 中工作。一旦我再次添加调用 - 白页。
经过几个小时的困惑,我想到了一件事:默认情况下,Wordpress 中的 jQuery 以无冲突模式运行,这意味着$("#something)
您必须编写jQuery("#something")
. 我的想法是这可能会导致一些问题,所以我停用了无冲突模式。仍然:什么都没有,白页。
我没有更多的想法可能导致问题,所以我问你:你遇到过这个问题吗?您有任何解决方案或解决方案的想法吗?
非常感谢任何输入!
javascript - 什么 javascript fallback 最能模拟 html5 表单验证
我已经构建了一个使用 html5 验证表单客户端的应用程序。我正在寻找最能在旧浏览器中模拟这种行为的 javascript 实现。
重要的品质是:
- 尽可能相似的行为。
- 尽可能少修改css/html
- 除了内置的字段验证之外,功能尽可能少
javascript - 是否有任何 javascript 代码(polyfill)可以启用 Flexbox(2012,css3),例如modernizr?
我正在寻找任何像modernizr(实际上没有)为“旧浏览器”(polyfill)启用flexbox的javascript库。
是的,我知道这是一个非常新的功能(事实上“没有”是一个有效的答案),但我希望有这样的东西,我总是很难水平+垂直居中,这真的会有所帮助并缩短工作。
我的意思是这个 flexbox:http ://weblog.bocoup.com/dive-into-flexbox/ (最新的)
html - Modernizr - 加载 polyfills/使用自定义检测的正确方法
我想在网页上使用一些新的 HTML5 表单属性和输入类型。有些浏览器已经支持它们,有些则不支持,也永远不会。这就是我想使用 Modernizr 的原因——这就是我的麻烦开始了。
据我了解,Modernizr 本身并不是一个 polyfill,而是一个可以测试浏览器是否能够处理一些新的 HTML5 / CSS3 内容的脚本。如有必要,可以加载“模拟”这些功能的 polyfill,以便在不支持/较旧的浏览器中使用它们。我猜这是正确的吗?
关于测试/加载:使用 Modernizr 加载 polyfill 的正确或最佳方法是什么?
在文档中我发现了这个:
但有些页面也这样做:
另外,我如何真正了解这些功能检测是如何被调用的?Modernizr.geolocation
每个特征检测肯定存在类似的东西?
在 Modernizr GitHub 存储库中,也有许多用户贡献的功能检测。如何将这些实现到我的 Modernizr 版本中?还是最好只使用他们的构建器?
在 Safari 中,HTML5 表单验证有效,但没有用于显示错误消息的 UI。基本上,该功能只实现了一半。这就是为什么 Modernizr 在 Safari 中给出误报的原因,就像这里已经提到的那样:https ://github.com/Modernizr/Modernizr/issues/266 显然有人用这样的自定义测试解决了这个问题,但我仍然不明白如何使用它。1
css - JS实现CSS网格模板布局的媒体查询支持
W3C 有一个工作草案来介绍 HTML 页面的高级布局机制。我发现了两个 JavaScript 实现,它们在现代浏览器中为本草案的基础提供了支持:
有谁知道这些或其他实现是否包括通过媒体查询调整布局的支持?
css - 是否有用作 CSS 背景的 SVG 的 polyfill?
我想使用 SVG 而不必每次都创建 PNG 后备。这个问题的简单解决方案是什么?我看过这些项目,但不知道他们是否支持它:
jquery-mobile - jQuery Mobile Android 2.x 幻灯片转换支持
jQuery Mobile 不支持 3D 过渡,例如适用于 Android 2.3 及更低版本的幻灯片。有一些 polyfill/widget/plugin/方式让它工作吗?
javascript - 是否有可靠的跨浏览器方式来使用带有敲除的 polyfill?
我们有一个几乎完全淘汰淘汰的网站,我们需要支持所有主流浏览器,包括回到 IE7(而不是 IE6)的 Internet Explorer。
Chrome 已经支持几乎所有我们真正关心的 HTML 5 功能,Modernizr 像冠军一样处理 CSS hack。但有时我们仍然不得不求助于 polyfill,两个值得注意的例子是placeholder
属性和最近的<details>
元素。
大多数 polyfill 都是或依赖于 jQuery 插件,这在理论上很好。不幸的是,它们在处理动态加载的内容方面也往往效率低下——当您使用淘汰赛(或任何模板引擎,真的)时,这种情况很多。更复杂的事情是我们使用淘汰赛作为真正的 MVVM,所以在一堆 JS hack 中没有合适的地方来重新加载插件(就我们的架构而言,这可能是一件好事,但令人沮丧的是正面)。
DOMNodeInserted
我们能够为 Firefox 和 IE9 使用事件(我知道已弃用)提出了一个半可靠的实现。不幸的是,它在 IE8 中不起作用,因为旧版 IE 不支持它,而且在那些浏览器中复制似乎几乎不可能。onreadystatechange
一开始似乎很有希望,但该事件往往触发得太早 - 即使readyState
已明确检查 - 并且 polyfills 可以说没有达到目标。
我们尝试过的唯一在 IE7/IE8 中真正可靠工作的选项是使用重复超时以每 50 毫秒重新运行一次 polyfill。不幸的是,这也不断消耗整个 CPU,甚至将其提高到 100 毫秒都会导致 UI 延迟太明显,因此不太适合生产使用。
那么:是否有任何可靠的方法可以将传统的 polyfill 技术与动态内容和模板引擎(如 knockoutjs)相结合,至少在 IE7 等主流浏览器中都可以使用?
(FWIW,我们最终确实使用淘汰赛的afterRender
绑定管理了一个解决方法,但是这种方法将“poly”从“polyfill”中取出。我希望我们可以写一次然后忘记的东西。)