Ошибка: Uncaught TypeError: Cannot set property 'innerHTML' of null
Проверяем на наличие хэша в строке браузера
если http://mysite.ru#1 то ничего не показываем если http://mysite.ru#2 или http://mysite.ru#3 или http://mysite.ru#4 то выводим alert и данные из файла, ошибка показывается, но файл не вставляется. в консоли: Uncaught TypeError: Cannot set property 'innerHTML' of null <script> var hah = window.location.hash; var requestik = new XMLHttpRequest();requestik.open('GET', '/complete/moonbeam-suhov/page1.html'); requestik.send(null) var html = document.documentElement; var elementik = document.querySelector('.showphoto1'); if( hah >= "#2"){ alert('хеш'); elementik.innerHTML = requestik.responseText; } </script> <div class="showphoto1"></div> |
оберни код в window.onload = function() { ... }
|
Код обернул, с алертом файл подключается, убираю алерт, файл не подключается.
Причем в опере12 работает, а в хроме только алерт. |
window.onload = function() { var requestik = new XMLHttpRequest(); requestik.open('GET', '/complete/moonbeam-suhov/page1.html'); requestik.onreadystatechange = function() { if (this.readyState === 4 && (this.status >= 200 && this.status < 300 || this.status === 304)) { var hah = window.location.hash; var html = document.documentElement; var elementik = document.querySelector('.showphoto1'); if (hah >= "#2") { alert('хеш'); elementik.innerHTML = requestik.responseText; } } } requestik.send(null); } |
А как объединить это с fancybox ?
вот код вызова: var thisHash = window.location.hash; $(document).ready(function() { if(window.location.hash) { $(thisHash).fancybox({ }) .trigger('click'); } $('.fancybox').attr('rel', 'gallery').fancybox({ prevEffect : 'fade', nextEffect : 'fade', closeBtn : true, arrows : true, nextClick : true, beforeClose: function() { window.location.hash = ''; }, afterLoad: function() { $.getScript("/share.js"); var el, id = $(this.element).data('title-id'); window.lnkimg = this.href; if(id){ el = $('#'+id); if(el.length){ this.title = el.html(); } } window.location.hash = this.index; },});}); т.е кодга открываем фото, у нас к адресу добавляется хеш, допустим http://mysite.com#3 и по этой ссылке срабатывает .trigger('click');открывается выбранное фото. |
Часовой пояс GMT +3, время: 04:31. |