Changeset 111275 in spip-zone for _plugins_/z-core/trunk


Ignore:
Timestamp:
Aug 7, 2018, 12:07:44 PM (13 months ago)
Author:
placido@…
Message:

executer les éventuels scripts inline contenus dans les z_apl

Location:
_plugins_/z-core/trunk
Files:
2 edited

Legend:

Unmodified
Added
Removed
  • _plugins_/z-core/trunk/javascript/zapl.scripts.js

    r104839 r111275  
    11// equivalent de $.get en pur js
    22var getAjax = function(url, success) {
    3                 var r = new XMLHttpRequest();
    4                 r.open('GET', url);
    5                 r.onreadystatechange = function() {
    6                                 if (r.readyState > 3 && r.status == 200) success(r.responseText);
    7                 };
    8                 r.send();
    9                 return r;
     3    var r = new XMLHttpRequest();
     4    r.open('GET', url);
     5    r.onreadystatechange = function() {
     6        if (r.readyState > 3 && r.status == 200) success(r.responseText);
     7    };
     8    r.send();
     9    return r;
    1010};
    1111// peupler le zbloc et dire qu'il est prêt
    1212function getZapl(bloc) {
    13                 var myurl = window.location + "";
    14                 myurl = myurl.split('#');
    15                 myurl = myurl[0] + ((myurl[0].indexOf("?") > 0) ? "&" : "?") + "var_zajax=" + bloc;
    16                 getAjax(myurl, function(data) {
    17                                 var el = document.querySelector("#zapl-" + bloc);
    18                                 var newEl = document.createElement('div');
    19                                 newEl.innerHTML = data;
    20                                 el.parentNode.replaceChild(newEl, el);
    21                                 // un array qui liste les zblocs traités
    22                                 if (!window.zapl_list) {
    23                                                 window.zapl_list = [];
    24                                 }
    25                                 window.zapl_list.push(bloc);
    26                 });
     13    var zapl = document.querySelector("#zapl-" + bloc);
     14    if (zapl) {
     15        var myurl = window.location + "";
     16        myurl = myurl.split('#');
     17        myurl = myurl[0] + ((myurl[0].indexOf("?") > 0) ? "&" : "?") + "var_zajax=" + bloc;
     18        getAjax(myurl, function(data) {
     19            var newEl = document.createElement('div');
     20            newEl.innerHTML = data;
     21            zapl.parentNode.replaceChild(newEl, zapl);
     22            // un array qui liste les zblocs traités
     23            window.zapl_list.push(bloc);
     24        });
     25    }
    2726};
    28 
    2927// attendre jQuery et les zblocs pour renclencher AjaxLoad
    30 window.zapl_loop_index = 0;
     28zapl_loop_index = 0;
     29zapl_list = [];
    3130zapl_loop = setInterval(function() {
    32                 //console.log("loop index : " +  window.zapl_loop_index + " - jQuery chargé ? : " + (typeof jQuery.spip.triggerAjaxLoad !== 'undefined') + " - Nb zapl traités:" + window.zapl_list.length );
    33         if (    (typeof jQuery.spip === 'object') &&
    34                                 (typeof jQuery.spip.triggerAjaxLoad === 'function') &&
    35                                 (typeof window.zapl_list !== 'undefined') &&
    36                                 !(document.querySelectorAll("[id^='zapl-']").length) ) {
    37                         clearInterval(zapl_loop);
    38                         var h = window.location.hash;
    39                         if (h) {
    40                                         // $b correspond à la selection jQuery des zblocs
    41                                         var $b = $();
    42                                         window.zapl_list.forEach(function(e) {
    43                                                         $b = $b.add(e);
    44                                         });
    45                                         if ($b.find(h)[0]) {
    46                                                         jQuery(h).positionner(true);
    47                                         }
    48                         }
    49                         jQuery.spip.triggerAjaxLoad(document);
    50                         return;
    51                 }
    52                 // Au dela de 20 sec ...
    53                 else if (window.zapl_loop_index < 200) {
    54                                 window.zapl_loop_index++;
    55                 }
    56                 // ... auto-débraillage
    57                 else {
    58                                 clearInterval(zapl_loop);
    59                 }
     31    //console.log("loop index : " +  window.zapl_loop_index + " - jQuery chargé ? : " + (typeof jQuery.spip.triggerAjaxLoad !== 'undefined') + " - Nb zapl traités:" + window.zapl_list.length );
     32    if (
     33        typeof jQuery.spip === 'object' &&
     34        typeof jQuery.spip.triggerAjaxLoad === 'function' &&
     35        window.zapl_list.length &&
     36        !document.querySelectorAll("[id^='zapl-']").length
     37    ) {
     38        clearInterval(window.zapl_loop);
     39        // $b = collection jQuery des zblocs
     40        var $b = jQuery();
     41        window.zapl_list.forEach(function(e) {
     42            $b = $b.add("#" + e);
     43        });
     44        //executer les scripts inline inclus
     45        var $s = $b.find("script");
     46        if ($s.length) {
     47            $s.each(function(i, e) {
     48                jQuery.globalEval($(e).html());
     49            });
     50        }
     51        // positionner ancre
     52        var h = window.location.hash;
     53        if (h && $b.find(h)[0]) {
     54            jQuery(h).positionner(true);
     55        }
     56        jQuery.spip.triggerAjaxLoad(document);
     57        return;
     58    }
     59    // Au dela de 20 sec ...
     60    else if (window.zapl_loop_index < 200) {
     61        window.zapl_loop_index++;
     62    }
     63    // ... auto-débraillage
     64    else {
     65        clearInterval(zapl_loop);
     66    }
    6067
    6168}, 100);
  • _plugins_/z-core/trunk/paquet.xml

    r108571 r111275  
    22        prefix="Zcore"
    33        categorie="outil"
    4         version="2.6.6"
     4        version="2.6.7"
    55        etat="stable"
    66        compatibilite="[3.0.0;3.2.*]"
Note: See TracChangeset for help on using the changeset viewer.