После ленивой загрузки Bootstrap Javascript, как вызвать его функцию initCallback? - PullRequest
0 голосов
/ 29 декабря 2018

Поскольку встроенный в Bootstrap javascript не напрямую необходим, так как он действительно необходим только тогда, когда пользователь начинает взаимодействовать со страницей, я полагаю, что могу его лениво загрузить.(Да, это всего лишь несколько КБ, но, если возможно, почему бы и нет?)

Незначительная проблема заключается в том, что скрипт начальной загрузки запускает свою функцию инициализации initCallback () при событии DOMContentLoaded.Я полагаю, что эта функция будет искать теги данных в HTML и связывать соответствующие события / триггеры.Так как он загружается лениво, DOMContentLoaded запускается до загрузки bootstrap.js, и поэтому пропускает это событие и не инициализируется.

Я просто любитель в Javascript;и я не могу понять, как вручную вызвать эту функцию после того, как fetch () (фактически используя функцию, которую я нашел в сети с именем fetchInject ()) завершил загрузку скрипта.

Может быть, ленивая загрузка начальной загрузкине очень хорошая идея;но я пойму это в конечном счете;если я заставлю это работать по крайней мере.

  /* Native Javascript for Bootstrap 4 | Initialize Data API
  --------------------------------------------------------*/
  var initializeDataAPI = function( constructor, collection ){
      for (var i=0, l=collection[length]; i<l; i++) {
        new constructor(collection[i]);
      }
    },
    initCallback = BSN.initCallback = function(lookUp){
      lookUp = lookUp || DOC;
      for (var i=0, l=supports[length]; i<l; i++) {
        initializeDataAPI( supports[i][1], lookUp[querySelectorAll] (supports[i][2]) );
      }
    };

  // bulk initialize all components
  DOC[body] ? initCallback() : on( DOC, 'DOMContentLoaded', function(){ initCallback(); } );

initCallback () для выполнения, так что начальная загрузка найдет все HTML-хуки встроенных данных (как выпадающие списки и прочее)

1 Ответ

0 голосов
/ 29 декабря 2018

Вы пытались получить доступ к глобальному пространству имен начальной загрузки, например, просто запустив этот код:

BSN.initCallback();
...