问题标签 [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 投票
0 回答
1032 浏览

javascript - document.elementFromPoint(x,y) - 纯 JavaScript 替代品?

在许多情况下使用 CSS 属性时, 某些 Android 设备(本机浏览器)elementFromPoint()损坏overflow:auto,因此它会返回overflow:auto正确元素的父级(带有 的那个)。

该函数是否有一个完整、快速的替换/polyfill,类似于原生函数,但是是用 JavaScript 编写的?

我知道这些offsetXXXXX属性,但是当添加滚动和位置/溢出 CSS 设置时,事情变得复杂了......

0 投票
0 回答
39 浏览

javascript - svg 在旧的 IE 浏览器上

我正在构建 svg 格式的平面图,并且正在寻找一种 polyfill 来支持旧版浏览器:IE7、IE8 和 IE9 quirksmode。

我听说过svgweb,但我不确定它是否仍在维护,因为最后一个版本已经 2 岁了。此外,我宁愿不使用像 Flash 这样的专有技术。我也找到了 svg2vml,但它已有 3 年历史,但标记为正在进行中。

在我的情况下,我只需要绘制形状(圆形和多边形),并检测悬停和单击事件。是否有针对我的特定要求的简单而可靠的填充物?

0 投票
4 回答
1655 浏览

key - 带有内联键的 IndexedDB,对 Web SQL 的 polyfill,如何获取允许更新的键?

将 IndexedDB shim 用于 Web SQL 时,我无法更新记录:https ://github.com/axemclion/IndexedDBShim

我也在使用 IDBWrapper:https ://github.com/jensarps/IDBWrapper

尽管我使用了这些库,但我相信我的问题可能仍然相关,并且可能仍会得到适当的建议,因为它可能仅与 IndexedDB 和 Web SQL 的一般用法有关

我正在使用内联键实现 IndexedDB 存储。

当我将对象保存到商店时...

...它将生成一个自动递增的键,然后将该键值自动存储在以“keyPath”属性命名的对象上,在本例中为PersonId

这很好用。如果我检查 Chrome 中的 IndexedDB 存储,则有 2 列。键(键路径:'PersonId')和值(包含对象)。

如果我想更新同一个对象,我只需确保它包含一个名为PersonId的属性,并且具有与我要保存的键相同的值,并且它会更新。

但是,当使用保存到 Web SQL 的 IndexedDB shim 时(例如,在 Safari for Windows 或移动浏览器中),当我加载对象时,它们根本不包含PersonId属性。

供参考,_loadPersons回调如下:

如果我在 Safari 中检查 Web SQL 存储,则有 3 列,key(格式为 1-0、1-1、1-2)、inc(1、2、3)和 value(包含 JSON对象的字符串,缺少PersonId属性。

我不确定内联键功能在 IndexedDB 中是如何工作的,但似乎无论它做什么,它都不会在 Web SQL 中发生。

使用这种方法时,我应该如何引用我想要更新的对象?

我应该只使用外键吗?

是否有其他人实现了 IndexedDB -> Web SQL 结构,如果有,他们使用了哪些库,是否遇到过这个问题?

更新:

我查看了使用 IndexedDB polyfill 的 Indexed DB JQuery 插件示例背后的代码:http: //nparashuram.com/jquery-indexeddb/example/。然而,这个例子中所有的项目都已经有了一个“itemId”,并且它没有任何添加新项目的逻辑,只是将现有项目移动到不同的地方(购物车、愿望清单),所以我只能假设这种方法是一种“外键”方法。

更新 2:

我解决我的情况的方式,使我能够使用 IndexedDBShim 和 IDBWrapper,详细说明如下。然而,更好的解决方案可能是放弃这两个库并尝试其他方法。

0 投票
1 回答
2648 浏览

javascript - Using Javascript to dynamically add styles to stylesheet but I get a "Cannot read property 'length' of undefined" error

I am currently trying to make my own polyfill that will allow older browsers such as Internet Explorer the ability to read and execute media queries using traditional css selectors. The process flow goes something like this:

  1. Iterate through each stylesheet found within document
  2. Run through each style rule in stylesheet searching for media queries
  3. Define what device size we are targeting then apply appropriate "id"
  4. Dynamically add css line with selector to existing stylesheet

The idea is that the polyfill will search for media queries then apply a parent "id" to the body corresponding to the device size, for instance:

Here is what the javascript looks like so far:

Right now everything is working the way I want, even adding the css rule to the style sheet however I get this error and I'm not totally sure at what point:

If I remove the function call to this line, I don't get the error:

So I'm not sure what is happening during the function call and the reading of the .length

My html looks something like this:

Overall I need to figure out why the property length can't be read and what in the addCSSRule function call is causing the error.

0 投票
1 回答
2465 浏览

javascript - 检测地理 uri 支持

JavaScript 有没有办法检查客户端浏览器是否支持GEO-URI-scheme

我想将不受支持的浏览器的坐标显示为地图的链接

对于受支持的浏览器(如智能手机),作为指向它们自己的本机应用程序的链接。

0 投票
1 回答
599 浏览

css - CSS3 动画进度条 IE9 polyfill CSS3Pie

我正在尝试为我的网页创建简单的进度条。我已经按如下方式设置了我的代码:

我的CSS是这样的:

有了这个,我的进度条看起来像这样: 在此处输入图像描述
我的代码在这里可用:http: //jsfiddle.net/Misiu/BhRtQ/

我现在要做的就是让它与IE9兼容。

对于渐变,我打算使用CSS3PIE,但我不知道如何制作进度动画。

我怎样才能使它在 IE9 上看起来不错?
我的第一个想法是在 IE9 中使用动画 gif 作为背景,但也许这可以完全没有外部图像?

CSS3Pie背景可以动画吗?

编辑:
这是我的临时版本:http: //jsfiddle.net/Misiu/BhRtQ/9/
我正在使用 jQuery animate 为背景位置设置动画。

0 投票
1 回答
284 浏览

javascript - 如何在 dart2js 中使用 javascript polyfills

我想将indexedDB polyfill与编译为 Javascript 的 Dart 代码一起使用。当我刚刚添加所需的脚本时,dart2js 代码无法将window.indexedDB属性识别为 IDBFactory 实例并生成UnknownJavaScriptObject拦截器。

我试图在polyfill的元素上强制constructor.name,从indexedDB

这是向前迈出的一步,拦截器是正确的。不幸的是,当我向 IDBOpenDBRequest 添加类似的构造时,它的对象也得到了 IDBFactory 拦截器。

如何正确连接对象和拦截器?

0 投票
1 回答
494 浏览

javascript - 为什么 vminpoly 不适用于 ie8 及以下版本?

我尝试使用的是新大众单元的 polyfill。然而,我的问题是为什么它在 ie8 及以下版本中不起作用。开发者说所有浏览器ie5 - 8都支持...包括opera mini...

这是脚本的链接。它包括一个演示https://github.com/saabi/vminpoly

怎么了?为什么这不起作用?

0 投票
2 回答
6090 浏览

jquery - 在 Angular 应用程序中使用 webshims polyfill

我正在尝试在一个角度应用程序中使用webshims polyfill,该应用程序也使用 requirejs 进行依赖管理。我正在尝试填充form表单字段中缺少的属性,例如inputand button,它告诉浏览器特定按钮或输入属于哪个表单。IE9 没有这个功能。

我认为使用这个 polyfill 的最佳方法是创建一个表单指令,并调用$.webshims.polyfill('forms')内部的链接函数。

该指令

这是我现在加载 webshims polyfill 的方式:

我的 Requirejs 配置

问题是即使 shim 加载,甚至调用了正确的函数,shims 似乎也没有工作,因为 IE9 仍然存在 HTML5 表单属性(占位符、表单属性等)的问题

我在这里想念什么?

0 投票
1 回答
634 浏览

javascript - 在 phantomjs 中工作的 document.register 没有 polyfill

假设我正在编写以下 Web 组件或自定义元素:

github上的polyfill)这适用于Chrome。但是当我尝试在 PhantomJS 中运行它时,我收到以下错误:

如果你想重现,这里是我的 phantomjs 脚本

我尝试过其他 polyfill,例如

但实际上他们都没有工作。任何想法如何解决这一问题 ?