Giter Site home page Giter Site logo

User bug - FIXED! about includehtml HOT 24 CLOSED

xmoonlight avatar xmoonlight commented on August 30, 2024
User bug - FIXED!

from includehtml.

Comments (24)

lgg avatar lgg commented on August 30, 2024

Я хотел закрыть #1 и #2, но у меня никак не хочет работать. ЧЯДНТ?

from includehtml.

xmoonlight avatar xmoonlight commented on August 30, 2024

У Вас объект test ещё не создан.
Дождитесь полной загрузки DOM.
Учите: https://learn.javascript.ru/onload-ondomcontentloaded

from includehtml.

lgg avatar lgg commented on August 30, 2024

@xmoonlight https://fedos.top/demo/index.html https://fedos.top/demo/test2.html

В документации ничего об этом не написано, так что не совсем очевидно, что нужно оборачивать в domloaded.

from includehtml.

xmoonlight avatar xmoonlight commented on August 30, 2024

@lgg, это общий случай, не нуждающийся в отдельном дополнительном документировании.
Чтобы правильно применять любые JS-функции к объектам, достаточно понимать загрузку веб-страницы браузером.
Еще раз говорю: учите: https://learn.javascript.ru/onload-ondomcontentloaded

from includehtml.

lgg avatar lgg commented on August 30, 2024

@xmoonlight я убрал там вообще js includeHTML, остались только теги, которые согласно документации должны подтягиваться автоматически.

А по поводу доп документирования - многие js плагины сами внутри себя вешают проверку на наличие элементы/прогрузку DOM'a.

from includehtml.

xmoonlight avatar xmoonlight commented on August 30, 2024

@lgg по-внимательнее пишите код: Вы там ошиблись:

include scr=

вместо src=

А по поводу доп документирования - если Вы загружаете JS-функцией, Вы сами должны контролировать процесс. А по многим js-плагинам: пример - в студию.

from includehtml.

lgg avatar lgg commented on August 30, 2024

@xmoonlight посыпаю голову пеплом.

К слову, у Вас в коде был биндинг на window.onload событие, поменял на addEventListener, помогло.

from includehtml.

lgg avatar lgg commented on August 30, 2024

@xmoonlight вроде fotorama и fullpage,js так делают.

from includehtml.

xmoonlight avatar xmoonlight commented on August 30, 2024

К слову, у Вас в коде был биндинг на window.onload событие, поменял на addEventListener, помогло.

Возможно, т.к. я не во всех тестил.
А Вы в каком браузере тестили и обнаружили эту ошибку?

from includehtml.

lgg avatar lgg commented on August 30, 2024

@xmoonlight Chrome.

Вот пример: https://fedos.top/demo/
Там сейчас старая версия includeHTML.

from includehtml.

xmoonlight avatar xmoonlight commented on August 30, 2024

include scr=

from includehtml.

lgg avatar lgg commented on August 30, 2024

@xmoonlight da fuck ><
Поправил, а потом снова на старый пример откатился.

https://fedos.top/demo/
теперь src=
но onload перезаписывается.

from includehtml.

xmoonlight avatar xmoonlight commented on August 30, 2024

@lgg, ну если подменить=переопределить функцию - конечно не сработает.
так можно с любой сделать (+и событие так же переопределить)...
это не показатель.

from includehtml.

xmoonlight avatar xmoonlight commented on August 30, 2024

режим Append для window.onload:

var fn = window.onload;
window.onload = function() { 
   fn && fn() //если задана - исполняем.
   /*
    затем уже - всякие алерты!
   */
}

from includehtml.

lgg avatar lgg commented on August 30, 2024

@xmoonlight всё равно использовать биндинг функций через on не есть гуд. Лучше, через addEventListener

from includehtml.

xmoonlight avatar xmoonlight commented on August 30, 2024

@lgg ок, Аргументируйте.

from includehtml.

lgg avatar lgg commented on August 30, 2024

@xmoonlight https://learn.javascript.ru/introduction-browser-events#недостаток-назначения-через-свойство

from includehtml.

xmoonlight avatar xmoonlight commented on August 30, 2024

@lgg в ответ я могу сказать: чтобы добиться кросс-браузерности с addEventListener - нужно около 60 строк кода и тучу условий внутри: http://javascript.info/tutorial/onload-ondomcontentloaded
А прописать window.onload в режиме Append: всего +2 строки (их надо дописать в имеющийся код!).
Поэтому этот вариант - предпочтительнее для уменьшения размера и кол-ва логических операций, что скажется на производительности и он будет работать быстрее.

from includehtml.

lgg avatar lgg commented on August 30, 2024

@xmoonlight addEventListener работает с IE9 же. Зачем кросс-браузерность на более старый версии?

from includehtml.

lgg avatar lgg commented on August 30, 2024

@xmoonlight кстати, вот почему у меня был scr вместо src

image

from includehtml.

xmoonlight avatar xmoonlight commented on August 30, 2024

кстати, вот почему у меня был scr вместо src

Блин, правил же предыдущую версию, а потом снова затянул с ошибкой с локальной папки.....
Поправил!

from includehtml.

xmoonlight avatar xmoonlight commented on August 30, 2024

addEventListener работает с IE9 же. Зачем кросс-браузерность на более старый версии?

Здесь речь даже не сколько про IE9, сколько про другие браузеры для мобил, SmartTV и телеприставок различных типов и направлений.
Т.е. я понял, что есть желание заменить на вот это:

All browsers except IE<9 support it.
document.addEventListener( "DOMContentLoaded", ready, false )

Тогда надо как-то совместить, если вдруг addEventListener - окажется недоступен.
Первым делом, разумеется, его проверяем.
http://caniuse.com/#feat=domcontentloaded

from includehtml.

lgg avatar lgg commented on August 30, 2024

@xmoonlight так вроде в том же самом caniuse написано, что все мобилки поддерживают его.

Тут скорее даже проблема не с самим плагином(что внутри него биндинг будет через window.onload), а с теми пользователями, которые будут сами что-то делать через window.onload и тогда вот они уже перекроют биндинг внутри плагина.

from includehtml.

xmoonlight avatar xmoonlight commented on August 30, 2024

Если они заменят после (как в твоём примере) - то да, затрут они.
Если до этого - то я прописал append-переброску и код плагина выполнит их код, а потом уже - свой и ничего не пропадёт.

Т.е. тот, кто использует window.onload должен:

  1. или юзать его однократно в коде страницы в любом месте (в плагине includeHTML уже 1 раз есть)
  2. или ставить выше загрузки кода плагина includeHTML (чтобы плагин делал прокидку событий)
  3. или не забывать делать Append в 2 строки, чтобы не затирать предыдущую инициализацию

По логике: этот плагин - первый JS-код, который должен появиться в момент вёрстки, так что если затрут - сразу заметят, что это их ошибка и поправят уже свой код.

from includehtml.

Related Issues (7)

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.