img attribute javascript internet-explorer ecmascript-7

javascript - attribute - es decir, no admite el método ''incluye''



title html css (4)

He estado trabajando en un proyecto y desarrollando un marco de JavaScript. El código original es de aproximadamente 700 líneas, así que solo pegué esta línea. El método includes no funciona en Internet Explorer. ¿Hay alguna solución para esto?

var row_cells = tbl_row.match(/<td[/s/S]*?<//td>/g); row.Cells = new Array(); if (onRowBindFuncText != null) { /*Fonksyon tanımlanmaışsa daha hızlı çalış*/ var cellCount = 0; for (i = 0; i < row_cells.length; i++) { var cell = new Cell(); $.each(this, function (k, v) { if ((row_cells[i]+"").includes("#Eval(" + k + ")")) { cell.Keys.push(new Key(k,v));

... El código continúa


@ Infer-on mostró una gran respuesta, pero tiene un problema en una situación específica. Si usa for-in loop retorna incluye la función "includes" que ha agregado.

Aquí hay otro pollyfill.

if (!Array.prototype.includes) { Object.defineProperty(Array.prototype, "includes", { enumerable: false, value: function(obj) { var newArr = this.filter(function(el) { return el == obj; }); return newArr.length > 0; } }); }


Debido a que no es compatible con IE, tampoco se admite en Opera ( consulte la tabla de compatibilidad ), pero puede utilizar el polyfill sugerido:

Polyfill

Este método se ha agregado a la especificación ECMAScript 2015 y es posible que aún no esté disponible en todas las implementaciones de JavaScript. Sin embargo, puedes rellenar fácilmente este método:

if (!String.prototype.includes) { String.prototype.includes = function(search, start) { ''use strict''; if (typeof start !== ''number'') { start = 0; } if (start + search.length > this.length) { return false; } else { return this.indexOf(search, start) !== -1; } }; }


Esta respuesta seleccionada es para String, si está buscando ''includes'' en una matriz, resolví mi problema agregando lo siguiente a mi archivo polyfills.ts:

import ''core-js/es7/array'';