javascript - 如何通过greasemonkey用户脚本使webshim工作?
问题描述
我正在制作一个用户脚本,将 shims 和 polyfills 放入页面中。我也包括了 Webshim,但它似乎没有做任何事情。
这就是我包含它的方式:
var script = document.createElement("script");
script.src = "http://code.jquery.com/jquery-2.1.0.min.js";
var head = document.getElementsByTagName("head")[0];
head.insertBefore(script, head.firstChild);
var script = document.createElement("script");
script.src = "https://cdnjs.cloudflare.com/ajax/libs/webshim/1.16.0/minified/polyfiller.js";
head.insertBefore(script, head.firstChild);
var script = document.createElement("script");
script.innerHTML =
"webshims.setOptions('extendNative', true);webshims.polyfill();";
head.insertBefore(script, head.firstChild);
(insertBefore-ing 因为脚本标签在插入时运行)
这会导致 webshim 明显运行,并且没有任何错误。我在 Firefox 3.x 上尝试了它,我很确定这意味着它必须填充很多东西,但它似乎根本没有做任何事情。在 Firebug Net 面板中看到,它甚至似乎没有连接到任何其他 .js 文件,只有一个 shim-ext.css 文件。我去了显然有视频元素和其他 html5 内容的网页,但它仍然没有做任何事情。我以为我必须在元素或其他东西上放一些特殊的类名,但既不是 http://afarkas.github.io/webshim/demos/也不 是https://github.com/aFarkas/webshim或我发现的任何 stackoverflow 帖子或教程都提到了这一点。我认为问题在于它找不到其他文件,但它显然可以找到 shim-ext.css,我发现这种方法可以将它包含在 stackoverflow 中,唯一的区别是我在greasemonkey 中运行它。
用户脚本在“文档开始”处运行,我检查它是否在任何其他脚本之前运行,甚至在元素存在之前运行。如果我特别要求像'webshim.polyfill('forms');'这样的功能 它仍然无法工作或连接到任何东西。用户脚本在 Webshim 之前的页面中包括 ECMAScript 5 shim&sham、ECMAScript 6 shim&sham 和 HTML5shiv,以及它的最新版本。无论是否设置 basePath 和 extendNative,它仍然是一样的。
解决方案
推荐阅读
- python - python中的随机音频讲座不起作用:pygame.error:无法打开'48.mp3'
- python - Python:根据每个产品的日期返回第一个值
- python - IndexError:通过for循环列出索引超出范围错误
- c# - C# 创建下载器
- linux - 在 Linux Alpine docker 容器中自定义 shell 启动
- get - 仅介子布尔选项 - 可重现的构建
- node.js - 为 CRUD 应用程序配置 mongoDB IP 地址
- powerbi - Power BI:将列拆分为行
- android - 当我按下系统后退按钮且未登录时,登录页面将我发送到主页
- c++ - ;=10 Arduino 有这样的用途吗?