シムとポリフィルをページに入れるユーザースクリプトを作成しています。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 要素が明確に含まれている Web ページにアクセスしましたが、それでも何もしませんでした。要素などに特別なクラス名を付ける必要があると思いましたが、 http://afarkas.github.io/webshim/demos/も https://github.com/aFarkas/webshimもありませんでしたまたは、私が見つけたstackoverflowの投稿またはチュートリアルでそれについて言及しています。問題は他のファイルが見つからないことだと思っていましたが、明らかにshim-ext.cssを見つけることができました。この方法でstackoverflowに含めることができました。唯一の違いは、グリースモンキーで実行したことです。
ユーザースクリプトは「document-start」で実行され、他のスクリプトの前、および要素が存在する前に実行されることを確認しました。「webshim.polyfill('forms');」のような機能を具体的にリクエストした場合 それでも機能しないか、何にも接続しません。usercript には、Webshim の前のページに ECMAScript 5 shim&sham、ECMAScript 6 shim&sham、および HTML5shiv が含まれており、すべての最新バージョンです。basePathとextendNativeを設定してもしなくても、同じです。