私はmavenを使用してjenkinsプラグインでJavascriptに取り組んでおり、次のコードを使用しています。
function arrayElements(element, index, array)
{
var arrayPaths = element.split("\\");
var projectSource = arrayPaths[2];
var array = element.split("_");
if (projectSource === global ) {
if (array[2]===filtro){
document.getElementById("source").options.add(new Option(arrayPaths[3], element));
}
}
}
function fillCompiledSource(object, projects)
{
document.getElementById("source").innerHTML = "";
global = document.getElementById("branches").value;
projects.forEach(arrayElements)
}
var projects = new Array();</script><script>
function fillCombo()
{
document.getElementById("source").innerHTML = "";
global = document.getElementById("branches").value;
var array = document.getElementById("branches").value.split('/');
global = array[1];
projects.forEach(arrayElements)
}
これはInternetExplorerでのみ失敗し、ドキュメントモードがIE8標準の場合にのみ、理由とその解決方法がわかりません。
Pd:InternetExplorerは10です
ええ、IE8はを実装していないためですArray.forEach
(他の多くの最新のJSメソッドでもありません)。 IE8で作業する必要がある場合は、 shim it (互換性のセクションを参照)する必要があります。
ちなみに、MDNには、サポートされていない他のほとんどのメソッドのリソースもあります。
これは役立つかもしれません。 jQueryの問題を解決するには:
//This will fail in IE8
myObject.each(function(index, value){
//your code goes here
});
//This will work in IE8 and all modern browsers
$.each(myObject, function(index, value){
//your code goes here
});
存在しないforEach関数をArray.prototype.forEeachにバインドすることもできます。
(function () {
if ( typeof NodeList.prototype.forEach === "function" ) return false;
NodeList.prototype.forEach = Array.prototype.forEach;
})();
私はこの投稿でそれを見つけました https://tips.tutorialhorizon.com/2017/01/06/object-doesnt-support-property-or-method-foreach /。