🔧 Morceaux de programmes

Cette page contient des morceaux de programmes qui me sont utiles.

javascript

time

        var tim=new Date();
        tim=tim.getTime();
        
        console.log(Performance.now())
        

get select value

          var domSelect=document.getElementById('mySelectId');
          var value=domSelect.options[domSelect.selectedIndex].value;
        

create node

          var parent=document.getElementById('div_parent');
          var child=document.createElement('p');
          child.setAttribute('data-type1','theType');
          parent.appendChild(child);
          child.addEventListener('click' , myFunct, false );
        

debounce

          // Returns a function, that, as long as it continues to be invoked, will not
          // be triggered. The function will be called after it stops being called for
          // N milliseconds. If `immediate` is passed, trigger the function on the
          // leading edge, instead of the trailing.
          function debounce(func, wait, immediate) {
           var timeout;
           return function() {
            var context = this, args = arguments;
            var later = function() {
             timeout = null;
             if (!immediate) func.apply(context, args);
            };
            var callNow = immediate && !timeout;
            clearTimeout(timeout);
            timeout = setTimeout(later, wait);
            if (callNow) func.apply(context, args);
           };
          };

          // Usage
          var myEfficientFn = debounce(function() {
           // All the taxing stuff you do
          }, 250);
          window.addEventListener('resize', myEfficientFn);
        

getAbsoluteUrl

          var getAbsoluteUrl = (function() {
           var a;

           return function(url) {
            if(!a) a = document.createElement('a');
            a.href = url;

            return a.href;
           };
          })();

          // Usage
          getAbsoluteUrl('/something'); // ;-) https://davidwalsh.name/something 
        

ajax call

        //===============================================================================================================================
        function myAjaxCall(){
         
         var r = new XMLHttpRequest();
         r.open("POST",'za_ajax.php?phpfileWithoutExtension',true);
         r.timeout=6000;
         r.setRequestHeader("Content-Type", "application/x-www-form-urlencoded;charset=utf-8");
         r.onreadystatechange = function () {
          if (r.readyState != 4 || r.status != 200) return;
          try{
           var jsonRet=JSON.parse(r.responseText);
           if(jsonRet.status=='OK'){
            // do good stuff
            return;
           }else{
            display_ajax_error_in_cons(jsonRet);
            console.log(r);
            alert('BAD job !');
            return;
           }
          }catch(e){
           console.error(e,r);
           return;
          }
         };
         r.onerror=function(e){console.error('e=',e); /* whatever(); */    return;}
         r.ontimeout=function(e){console.error('e=',e); /* whatever(); */    return;}
         var data={
          funct                     : 'phpfileWithoutExtension',
          subFunct                  : 'functionNameInPhpFile',
          somedata1                 : 'something1',
          somedata2                 : 'something2',
         }
         r.send('data='+encodeURIComponent(JSON.stringify(data)));  
        }         



        //=====================================================================================================================
        function display_ajax_error_in_cons(jsonRet) {
         var txt = '';
         if(jsonRet.hasOwnProperty('status')){txt+='status:'+jsonRet.status+' ';}
         if(jsonRet.hasOwnProperty('message')){
          if(Array.isArray(jsonRet.message)){
           for(var elem in jsonRet.message){
            txt+=''+jsonRet.message[elem]+'\n';
           }
          }else{
           txt+=''+jsonRet.message+'\n';
          }
         }
         console.log(txt);
         console.log('jsonRet=', jsonRet)
        }

         
        

trim, htmlEntities

         if(!String.prototype.trim){
          String.prototype.trim=function () {
            return this.replace(/^[\s\uFEFF\xA0]+|[\s\uFEFF\xA0]+$/g, '');
          };
         }

         if(!String.prototype.htmlEntities){
          String.prototype.htmlEntities=function(){
            return this.replace(/&/g, '&').replace(/</g, '<').replace(/>/g, '>').replace(/"/g, '"');
          };
         }

         if(!String.prototype.htmlEntitiesBack){
          String.prototype.htmlEntitiesBack=function(){
            return this.replace(/&amp;lt;/g,'<').replace(/&amp;gt;/g,'>').replace(/&amp;quot;/g,'"').replace(/&amp;amp;/g,'&amp;');
          };
         }
        

php and js

php json to function

           &lt;?php
           $param=array(
            'param1'      => 1   ,
            'param2'      => 'hello, world \' " + \\ {}\r\n=>new € line' 
           );
           $paramUrl=json_encode($param);
           $paramUrl=str_replace('\\','\\\\',$paramUrl);
           $paramUrl=str_replace('\'','\\\'',$paramUrl);
           $paramUrl=str_replace('"','\\"',$paramUrl);
           $paramUrl=rawurlencode($paramUrl);
           $o1='&lt;a href="javascript:action(' . var_export($paramUrl,true) . ')">action';
           echo $o1;
           ?>
           &lt;script>
           function action(par){
            console.log(par);
            par=JSON.parse(par);
            
            console.log(par);
            par.param2=par.param2.replace(/\\n/g,'\n');
            par.param2=par.param2.replace(/\\r/g,'\r');
            
            alert(par.param2);
           }
           &lt;/script>
        

HTML

rel="noopener"

Le bon moyen d'écrire un lien avec target="_blank" est d'ajouter un rel="noopener". allez voir cet article : dareboost.com
target="_blank" rel="noopener"

html minimal

&lt;!DOCTYPE html&gt;
&lt;html lang="fr"&gt;
 &lt;head&gt;
  &lt;meta charset="utf8" /&gt;
  &lt;title&gt;Title&lt;/title&gt;
  &lt;meta name="viewport" content="width=device-width, initial-scale=1" /&gt;
  &lt;!-- link rel="stylesheet" href="" / --&gt;
  &lt;style type="text/css"&gt;
html{-webkit-box-sizing: border-box;-moz-box-sizing: border-box;box-sizing: border-box;}
*, *:before, *:after {-webkit-box-sizing: inherit;-moz-box-sizing: inherit;box-sizing: inherit;margin:0;padding:0;border:0;}
body{
 font-family:verdana, arial, sans-serif;
 font-size:16px;
 border:0px red solid;
}
*{scrollbar-color: #34d3f7 #bfe8ff;}
*::-webkit-scrollbar {width: 1.2em;background:#bfe8ff;}
*::-webkit-scrollbar-thumb {background-color: #34d3f7;}
*::-webkit-scrollbar-corner{background-color: #34d3f7;}
*::-webkit-resizer{background-color: #34d3f7;}
  &lt;/style&gt;
 &lt;/head&gt;
 &lt;body&gt;
  &lt;img id="img1" src="https://picsum.photos/200" style="width:200px;" /&gt;
  &lt;script type="text/javascript"&gt;
document.addEventListener("DOMContentLoaded", function(event) { 

  console.log('DOMContentLoaded first');
  
  document.body.style.backgroundColor='#eee'; // exécuté avant le chargement complet des images
  
  document.getElementById('img1').addEventListener('load',function(e){
   console.log('image loaded comes before all loaded');
  });
  
});

window.addEventListener('load', function () {
  console.log("finally all loaded!")
})

  &lt;/script&gt;
 &lt;/body&gt;
&lt;/html&gt;
        

PHP

curl get

$ch = curl_init();

curl_setopt($ch, CURLOPT_HEADER, 0);
curl_setopt($ch, CURLOPT_USERAGENT      , "Mozilla/5.0 (Windows NT 10.0; Win64; x64; rv:68.0) Gecko/20100101 Firefox/68.0"); //Make this valid if possible
if(strpos($url,'https')!==false){
    curl_setopt($ch, CURLOPT_SSL_VERIFYHOST, false);
    curl_setopt($ch, CURLOPT_SSL_VERIFYPEER, false);
}
curl_setopt($ch, CURLOPT_URL, $url);
curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1);
curl_setopt($ch, CURLOPT_TIMEOUT, 1);
curl_setopt($ch, CURLOPT_FOLLOWLOCATION, 1);
$output = curl_exec($ch);
$curlinfo1=curl_getinfo($ch);
error_log( __FILE__ . ' ' . __LINE__ . ' $curlinfo1=' . var_export( $curlinfo1 , true ) );
$errors=curl_error($ch);
error_log( __FILE__ . ' ' . __LINE__ . ' $errors=' . var_export( $errors , true ) );
curl_close($ch);

Divers

Liens

Github hugues-koolsol

📝 Les Articles.

Le symbole "🔧" (clé plate) indique les articles techniques.