问题标签 [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.
javascript - Modernizr 与 cssSandpaper?
我一直在努力尝试在 IE 8、7 和 6 上使用 rotate(xdeg) 功能,为此我谷歌了一段时间并找到了cssSandpaper但由于我必须加载 4 个不同的脚本我只想这样做如果它需要这个我使用modernizr我尝试这样的事情:
我的 css 文件(estilo.css):
我的 js 文件(misfallbacks.js)
它在 safari、chrome、opera、Firefox 和 IE9 上运行良好,但是当我在 IE8 或 IE7 上尝试时,我在控制台上收到以下错误,
SCRIPT5007: Unable to get value of the property 'addEventListener': object is null or undefined EventHelpers.js, line 49 character 9
我添加了一个 console.log 来尝试找出发生了什么并转到该行这里它是(EvenHelpers.js):
在下一次运行中,我再次检查了控制台,看到了这个LOG: null
,我不是 javascript 专家,所以我不确定发生了什么,但我尝试了一些不同的东西,并使用这样的脚本标签添加了 cssSandPaper:
令我惊讶的是,它就像一个魅力,就像这样,即使在 IE7 和 IE8 中我也有旋转功能,控制台现在说这个LOG: [object HTMLScriptElement]但我知道使用这种方式我将始终加载这 4 个脚本,即使它们不是必需的,这不是我的目标,但由于我从modernizr 和javacript 开始,我不知道发生了什么D:以及为什么当我使用来自modernizr 的nope:[''] 加载脚本时不起作用. 有谁知道解决这个问题的方法?...对不起我的英语不是我的第一语言
编辑:我对这个对象 HTMLScriptElement 做了一些研究,它假设引用了一个脚本标签...但我仍然遇到同样的问题...我该如何解决这个问题?:/
答:我最终使用if lt IE 9加载完成工作的砂纸脚本
jquery - CSS3 动画填充模式 polyfill
前言
让我们假设 adiv
是动画 from opacity:0;
toopacity:1;
并且我想opacity:1;
在动画结束后保留。
就是animation-fill-mode:forwards;
这样。
- 注意 1:我没有在此处包含供应商前缀以简化
- 注意2:这只是一个例子,请不要回复“只使用jQuery的fadeIn函数”等。
有些事情要知道
在这个答案中,我读到animation-fill-mode
Chrome 16+、Safari 4+、Firefox 5+ 支持。
但Chrome 1+ 和 Opera 也animation
单独支持。因此,即使不支持Modernizr的一般测试也可能返回正面。fill-mode
为了达到目标animation-fill-mode
,我在 Modernizr 上添加了一个新测试:
现在我有一个.no-animation-fill-mode
针对 CSS 和Modernizr.animationFillMode
JavaScript 的课程。
我还从CSS3 动画规范中读到:
文档样式表中指定的动画将在文档加载时开始
最后,问题
可以在动画结束的确切秒数处运行一个简单的 jQuery 函数吗
在 CSS 中:
或者是否有任何已知的 polyfill特定于animation-fill-mode
?
另外,如果我使用速记语法会发生什么
animation
在支持但不支持的浏览器上animation-fill-mode
?
非常感谢!
javascript - FileReader.js 在 IE9 中没有任何反应
我需要帮助设置Jadriens FileReader.js。我已经设置了一切,因为我认为这个 polyfill 有效。但是当一切启动时触发的回调在 IE9 中不会触发。这是我的标记:
这是 main.js:
很多代码,但我认为上下文可能会有所帮助。重要的行就在初始化注释的下方。.fileReader init 选项中的回调函数永远不会触发。不过,它确实会在其他现代浏览器中触发(如果您删除 if 语句)。
css - 媒体查询 Polyfill 性能 - IE
我正处于建立网站的早期阶段。我正在研究一些可以利用媒体查询在较小屏幕尺寸下正常工作的设计元素。
我对此没有任何问题,除了这将是一个小站点,因此几乎唯一在其上运行的 javascript 将是用于 IE 和其他浏览器的媒体查询的 Polyfill。
这会对性能产生多大影响?是否进行了任何适当的测试?
我问是因为我现在处于阶段,如果 polyfill 对性能的影响足够大,我可以调整设计,这样我就不必使用它们,也可以作为未来项目的想法。
奖励问题:
如果我不首先使用移动设备,而是最后使用移动设备,并且进行max-width
查询而不是查询min
,我什至需要一个 polyfill。如果页面在宽度小于 500 像素之前没有任何变化,我真的需要担心 IE 不显示它们吗?还是我错过了一些边缘情况?
javascript - css3-mediaqueries.js VS respond.js
respond.js还是css3-mediaqueries.js?
官方文档,尤其是 css3-mediaqueries.js 的文档很少。阅读 SO、论坛和博客,我总结了这些优点和缺点。
响应.js
优点:
- 更可靠(?由Modernizr、Twitter Bootstrap 3和H5BP 推荐)
- 更轻 (4kb) 更快
- 在任何上下文中解释媒体查询(
<link>
,内联 CSS,@import-ed CSS)
缺点:
- 不更新窗口调整大小
- 仅支持
min-width
和max-width
- 不支持
em
单位(巨大的弱点!)
css3-mediaqueries.js
优点:
- 实时反应(调整大小!)
- 支持
em
单位(真的吗?有人测试过吗?)
缺点:
- 较重 (15kb) 且较慢
- 仅解释具有明确声明的媒体类型的内联 CSS
- 缺乏详细的文档,该项目似乎被遗弃了
有没有人有要添加到列表中的要点,或者要分享的个人经验,或者对一个或另一个脚本的特别偏好?如果是这样,为什么?
html - 使用 jQuery.val() 和 Modernizr Webshims Lib 检索值时遇到问题
我正在使用 Modernizr plus Webshims使我能够为尚不支持该选项的浏览器使用 type="number" 类型。它工作正常,但我无法使用 jQuery 访问数字输入字段的值 [稍后我将分享我正在使用的代码]。
在 Chrome(不需要 polyfill)中,我可以使用 val() 检索值。在 Firefox(确实需要 polyfill)中,如果我不使用 webshim polyfill,我也可以检索该值。
但是,一旦我使用 webshims,我就无法再检索该值。
这是我正在使用的代码:
在标签之前,我有以下内容:
在内容部分,我添加了以下内容:
知道如何让它工作吗?
media-queries - 互操作性:Enquire.js 不执行 Respond.js 触发 css 媒体查询
好的,所以我使用Respond.js作为旧版浏览器上的媒体查询的 polyfill(ie8 是最重要的)。
同时,我正在研究使用Enquire.js,它可以根据媒体查询匹配执行 js 代码。
单独测试这些东西有效:
- respond.js 为 IE8 正确执行 css 中定义的媒体查询
- enquire.js 根据匹配 css 的媒体查询正确执行 javascript 代码。(对于非旧版浏览器)
但是组合似乎不起作用。IE:
Enquire.js 不会基于通过 respond.js 启用的媒体查询执行 javascript(对于旧版浏览器)
由于 Respond.js 包含 Paul Irish 的MatchMedia 填充物(根据: Enquire 's documentation)应该足以支持旧版支持,我不确定可能出了什么问题。
所以只是为了检查:这种组合应该有效吗?
javascript - 如何使用 Modernizr.js 测试 DOM4 Mutation Observers?
我正在尝试创建一个测试来检测使用 Modernizr.js的Mutation Observers 。在 Modernizer 文档中,有一个部分用于测试 DOM 元素,称为前缀。我尝试使用:
但很明显,这是行不通的。我得到一个TypeError: f.bind is not a function
我相当确定前缀字符串不是 MutationObserver,但我不知道它可能是什么,或者即使我正在正确编写测试。有任何想法吗?
jquery - Respond.js 和 Modernizr 无法在 IE8 上进行媒体查询
我有一个博客,我正在尝试使用 bootstrap 作为项目的骨干跨所有浏览器工作。我正在使用 Modernizr 和 Respond 来强制 IE 响应媒体查询,但由于某种原因脚本无法正常工作。我是按错误的顺序放置它们还是另一个 JS 脚本覆盖了它们?任何帮助将不胜感激。
javascript - 就浏览器兼容性而言,在 javascript 中使用“let”?
let
在 javascript中使用关键字的选项有哪些。好像真的很有用。
我见过traceur,但我想知道是否还有其他选择,所以我不必通过它运行整个项目。
是否有可能使用某种类型的 polyfill 或库。还是我基本上必须等到所有旧浏览器都消失才能原生使用它...