Funzione StartsWith JQuery e problema con Internet Explorer Problema con la funzione StartsWith di JQuery e incompatibilità con il browser Internet Explorer. Come risolvere il problema.

Pubblicato da lentux-informatica il

  •  
  •  
  •  
  •  
  •  

Chi utilizza javascript, potrà trovarsi di fronte a un noto bug della funziona JQuery StartsWith.

Il problema riguarda particolarmente l’utilizzo di questa funziona sul browser Internet Explorer.

startsWith() (metodo/proprietà JavaScript) verifica il valore (anche parziale) all’inizio di una stringa, passandole come argomento il valore stesso (case sensitive), restituendo true o false.

La funzione JQuery startsWith() permette quindi di controllare se un determinato elemento inizia con un valore specifico.

La sintassi in javascript per utilizzare questa funzione è abbastanza semplice.

Lo scopo è quello di verificare se il primo valore (“elemento” in questo caso) inizia esattamente con ciò che viene passato come argomento al metodo startsWith (in questo caso “valore“).

La sintassi in javascript puro è quella seguente:

elemento.startsWith("valore");

che ha la corrispondente sintassi in JQuery:

$("[elemento^='valore']");

Soluzione

Se si utilizza la sintassi javascript non si ha alcun problema su nessun browser, mentre se si utilizza la sintassi JQuery si hanno dei problemi con Internet Explorer dal momento che il comando “startsWith” non viene riconosciuto dal browser in questione.
Quindi per superare questo problema o si utilizza javascript puro oppure se si utilizza JQuery vanno inserite prima dell’utilizzo di startsWith le seguenti righe di codice per far si che funzioni su qualsiasi browser:




String.prototype.startsWith = function (str){
	if(this.indexOf(str) == 0){      
		return true;
	}else{
		return false;
	}
}  

Quindi bisogna stare sempre attenti e fare le opportune verifiche su tutti i browser per avere la certezza di un corretto funzionamento.

Il più delle volte i problemi si presentano proprio su Internet Explorer, ragion per cui consiglio di effettuare le prove direttamente li.

Se funziona su Internet Explorer sicuramente funzionerà su tutti gli altri browser.


  •  
  •  
  •  
  •  
  •  
  •  
  •  
  •  
  •  
  •  
  •  
  •