Skip to content

Instantly share code, notes, and snippets.

@LeonardoCiaccio
Last active September 23, 2017 16:00
Show Gist options
  • Save LeonardoCiaccio/43a7457f7a4ac9a96baa to your computer and use it in GitHub Desktop.
Save LeonardoCiaccio/43a7457f7a4ac9a96baa to your computer and use it in GitHub Desktop.
Accessori, da utilizzare quasi sempre, cross browser, in espansione ...
function copyToClipboard( element ){
var $temp = $( "<input>" );
$( "body" ).append( $temp );
$temp.val( $( element ).text() ).select();
document.execCommand( "copy" );
$temp.remove();
}
( function( W, D ){
window.U = {
/*
U.getLang()
Restituisce la lingua del browser
*/
getLang : function(){
return navigator.language || navigator.userLanguage;
},
/*
U.sanitize( string );
Pulisce una sctringa da caratteri speciali
*/
sanitize : function( string ){
return string.trim().replace( /[^a-z 0-9]+/gi, "" );//.replace( / /gi, "-" );
},
/*
U.addEvent( evnt, elem, func )
Appende un evento ad un elemento
*/
addEvent : function( evnt, elem, func ){
try{
if( elem.addEventListener ){
elem.addEventListener( evnt, func, false );
}else if( elem.attachEvent ){
var r = elem.attachEvent( "on" + evnt, func );
}else{
return false;
}
return true;
}catch( e ){
return false;
}
},
/*
U.getSelectedText()
Restituisce il testo selezionato nella pagina
*/
getSelectedText : function(){
var t = "";
try{
if( W.getSelection ){
t = W.getSelection();
}else if( D.getSelection ){
t = D.getSelection();
}else if( D.selection ){
t = D.selection.createRange().text;
}
}catch( e ){}
return t;
},
/*
U.clone( obj )
Clona un oggetto
*/
clone( obj ){
if( !obj || typeof obj != "object" )return {};
var news = {};
for( var key in obj ) {
news[ key ] = obj[ key ];
}
return news;
},
/*
U.merge( source, news );
Aggiorna un oggetto ottimo per i settaggi
*/
merge : function( source, news ){
source = source || {};
news = news || {};
for( var key in source ) {
if( source.hasOwnProperty( key ) && !( key in news )) {
news[ key ] = source[ key ];
}
}
return news;
},
/*
U.grep( items, callback )
filtra un array a seconda di un criterio
*/
grep : function( items, callback ){
var filtered = [],
len = items.length,
i = 0;
for( i; i < len; i++ ){
if( callback( items[ i ] ) )filtered.push( items[ i ] );
}
return filtered;
},
/*
U.getXHR()
restituisce un oggetto XMLHttpRequest o null
*/
getXHR : function(){
try {
return new XMLHttpRequest();
}catch(e){}
try {
return new ActiveXObject("Msxml3.XMLHTTP");
}catch(e){}
try {
return new ActiveXObject("Msxml2.XMLHTTP.6.0");
}catch(e){}
try {
return new ActiveXObject("Msxml2.XMLHTTP.3.0");
}catch(e){}
try {
return new ActiveXObject("Msxml2.XMLHTTP");
}catch(e){}
try {
return new ActiveXObject("Microsoft.XMLHTTP");
}catch(e){}
return null;
},
/*
U.paramsToJSON()
restituisce un oggetto JSON
*/
paramsToJSON : function( params ){
if( !params || params == "" )return {};
params = "{\"" +
params
.replace( /\?/gi, "" )
.replace( /\&/gi, "\",\"" )
.replace( /\=/gi, "\":\"" ) +
"\"}";
return JSON.parse( params );
},
/*
https://regex101.com/r/aAx3u7/2
*/
searchLinks : function( text ){
return text.match( /(http?s?:?\\?\/?\\?\/[^\s,"'<>]+)/g ) || [];
}
};
} )( window, document );
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment