div.innerHTML почему не работает в верху
Здравствуйте! почему код так работает:
<div id="div">777</div> <script> div.innerHTML = '<p>0000000</p>'; </script>:write: а:help: :blink: так не работает, 100 раз проверял <script> div.innerHTML = '<p>0000000</p>'; </script> <div id="div">777</div> 2) как document.write("22222222") передать значение в DIV :( может^ ddd.document.write("222222") <div id=ddd></div>может кто подсказать? Спасибо! |
Потому что html формат разработан для работы по сети и рисования сайта сразу по мере получения информации. Т.е. на медленном интернете во втором случае возможна ситуация, когда script - загрузился, а div ещё течёт по проводам. По этому разбор html документа всегда идёт строго по порядку: на момент запуска твоего script - твоего div не существует, и script, соответственно, ничего о нём не знает.
Либо всегда помещай script вниз, либо жди загрузки кода страницы: window.addEventListener('DOMContentLoaded', function(){ // твой код });либо загрузки всей страницы вместе с картинками, видео и прочим содержимым: window.addEventListener('load', function(){ // твой код }); Про document.write забудь. По крайней мере пока не станешь senior.) |
JavaScript в супер стайтах
Да, я сделал так:
<SCRIPT language=JavaScript> <!-- document.write("<font color=#ffffff size=-2>") now = new Date() if (now.getDay() == 0) document.write("пн") if (now.getDay() == 1) document.write("вт") if (now.getDay() == 2) document.write("ср") if (now.getDay() == 3) document.write("чт") if (now.getDay() == 4) document.write("пт") //--> </SCRIPT> а этот валидатор ругаеться :cray: :-E :-E :-E поэтому пришлось так::write: now = new Date() if (now.getDay() == 0) div.innerHTML = '<p>пн</p>'; if (now.getDay() == 1) div.innerHTML = '<p>вт</p>'; if (now.getDay() == 2) div.innerHTML = '<p>ср</p>'; if (now.getDay() == 3) div.innerHTML = '<p>чт</p>'; if (now.getDay() == 4) div.innerHTML = '<p>пт</p>'; if (now.getDay() == 5) div.innerHTML = '<p>сб</p>'; if (now.getDay() == 6) div.innerHTML = '<p>вс</p>'; и через DIV вывожу на страничку:victory: Но: я понимаю что это криво :-E , то скрипт в низу т.к. вверху не работает. а в теории то должно быть так: <html><head><script src="js/week.js"></script></head> <body> <div id="div">777</div> </body> </html> Но так ни фига не работает :-E :nono: Где справедливость? |
прокатило работает
РАБОТАЕТ: :thanks:
window.addEventListener('DOMContentLoaded', function(){ now = new Date() if (now.getDay() == 0) div.innerHTML = '<p>0000000</p>'; if (now.getDay() == 1) div.innerHTML = '<p>11111111fff2</p>'; }); а с document.write("пн")тоже также? :help: ну тока: window.addEventListener('DOMContentLoaded', function('super1'){function('super1'):thanks: |
Цитата:
window.addEventListener('DOMContentLoaded', function() { const day = (new Date()).getDay(); let html = '<p>0000000</p>'; if (day == 1) html = '<p>11111111fff2</p>'; if (!day || day == 1) div.innerHTML = html; } ); |
Цитата:
Тебе описали выше алгоритм обработки контента браузером. Так оно и работает. Ты еще пожалуйся что у машин несколько скоростей вперед и только одна назад. Где же СПРАВЕДЛИВОСТЬ? :-E |
Цитата:
<!DOCTYPE html> <html> <head> <!-- <script src='https://code.jquery.com/jquery-latest.min.js'></script> <script src="https://cdn.jsdelivr.net/npm/vue@2.6.14/dist/vue.js"></script> <link rel="stylesheet" type="text/css" href="tmp.css" /> <script src='tmp.js'></script> --> <style> </style> <script> window.addEventListener('DOMContentLoaded', _ => { const a = ['пн', 'вт', 'ср', 'чт', 'пт', 'сб', 'вс'] let val = now = new Date() val = val.getDay() div.innerHTML = '<p>' + a[val] + '</p>'; }) </script> </head> <body> <p id='div'></p> </body> </html> |
дак суперкод-> чтобы понятно было :-?
Спасибо! :dance: |
вопрос - как отоброжать содержимое фалов
а можно еще вопрос? :help:
function get_file(url, callback) { xmlhttp=new XMLHttpRequest(); xmlhttp.open("GET", url, true); xmlhttp.onreadystatechange = function() { if (xmlhttp.readyState == 4 && xmlhttp.status == 200) { callback(xmlhttp.responseText); } } xmlhttp.send(); } window.addEventListener('DOMContentLoaded', function() { const day = (new Date()).getDay(); let html = '<p>INFORMATION</p>'; if (day == 1) html = '1.dat'; if (day == 2) html = '2.dat'; if (day == 3) html = '3.dat'; if (day == 4) html = '4.dat'; if (day == 5) html = '5.dat'; if (day == 6) html = '6.dat'; if (day == 7) html = '7.dat'; if (!day || day == 1) info.innerHTML = html; if (!day || day == 2) info.innerHTML = html; if (!day || day == 3) info.innerHTML = html; if (!day || day == 4) info.innerHTML = html; if (!day || day == 5) info.innerHTML = html; if (!day || day == 6) info.innerHTML = html; if (!day || day == 7) info.innerHTML = html; } ); get_file(html, function(response) { document.getElementById("output").innerHTML=response; }); в общем вот :blink: не работает |
проверте на ошибки
в общем у меня стоит нотепад :blink:
как тока я сюда код закидываю вижу что можно подправить, а вноте пад как сляпой КРОТ:-? вот что вышло: function get_file(url, callback) { xmlhttp=new XMLHttpRequest(); xmlhttp.open("GET", url, true); xmlhttp.onreadystatechange = function() { if (xmlhttp.readyState == 4 && xmlhttp.status == 200) { callback(xmlhttp.responseText); } } xmlhttp.send(); } const day = (new Date()).getDay(); let html = '<p>INFORMATION</p>'; if (day == 1) html = '1.dat'; if (day == 2) html = '2.dat'; if (day == 3) html = '3.dat'; if (day == 4) html = '4.dat'; if (day == 5) html = '5.dat'; if (day == 6) html = '6.dat'; if (day == 7) html = '7.dat'; get_file(html, function(response) { document.getElementById("output").innerHTML=response; }); так правильно??? |
Цитата:
const day = (new Date()).getDay(); let html = '<p>INFORMATION</p>'; if (day) html = day + '.dat'; alert(html) |
может кому пригодиться
<script language="JavaScript"> nowDate=new Date(); theDay=nowDate.getDay(); text=new Array(30); text[0]="7777777"; text[1]="11111111"; text[2]="2222222"; text[3]="3333333"; text[4]="4444444"; text[5]="555555555"; text[6]="66666666666"; document.write(text[theDay]); </script> может кому пригодиться document.write:victory: |
Цитата:
|
на хостинге не работает
на денвере работает :dance:
а на хостинг закачиваю и приехали :-? window.addEventListener('DOMContentLoaded', function() { const day = (new Date()).getDay(); let html = '<p>0000000</p>'; if (day) html = day + '.dat'; if (!day || day == 4) info = html; function get_file(url, callback) { xmlhttp=new XMLHttpRequest(); xmlhttp.open("GET", url, true); xmlhttp.onreadystatechange = function() { if (xmlhttp.readyState == 4 && xmlhttp.status == 200) { callback(xmlhttp.responseText); } } xmlhttp.send(); } get_file(info, function(response) { document.getElementById("output").innerHTML=response }) } ); это я пробовал и так и так ее :-E а она ни в какую просто вывод текста то работает, а из файлов тока на локалке |
ага понял почему: 1.txt читает, а вот если расширение *.dat = то на сервере прочитать не может.
|
ам, не работает воскресенье
window.addEventListener('DOMContentLoaded', function() { const day = (new Date()).getDay(); let html = '<p>INFORMATION</p>'; if (day) html = day +'.txt'; readTextFile(html); } ); не работает когда воскресенье |
не фуричит с воскресеньем
function readTextFile(file) { var rawFile = new XMLHttpRequest(); rawFile.open("GET", file, false); rawFile.onreadystatechange = function () { if(rawFile.readyState === 4) { if(rawFile.status === 200 || rawFile.status == 0) { var allText = rawFile.responseText; document.getElementById("output").innerHTML=allText; } } } rawFile.send(null); } window.addEventListener('DOMContentLoaded', function() { const day = (new Date()).getDay(); let html = '<p>INFORMATION</p>'; if (day) html = readTextFile('admin/text/week/' + day + '.txt'); readTextFile(html); } ); |
как правильно вписать скрипт? сюда?
window.addEventListener('DOMContentLoaded', function() { } этот скрипт: ball.onmousedown = function(event) { let shiftX = event.clientX - ball.getBoundingClientRect().left; let shiftY = event.clientY - ball.getBoundingClientRect().top; ball.style.position = 'absolute'; ball.style.zIndex = 1000; document.body.append(ball); moveAt(event.pageX, event.pageY); function moveAt(pageX, pageY) { ball.style.left = pageX - shiftX + 'px'; ball.style.top = pageY - shiftY + 'px'; }; function onMouseMove(event) { moveAt(event.pageX, event.pageY); }; document.addEventListener('mousemove', onMouseMove); ball.onmouseup = function() { document.removeEventListener('mousemove', onMouseMove); ball.onmouseup = null; }; }; ball.ondragstart = function() { return false; }; если скрипт движения картинки установить наверх то картинка перестает двигаться. |
т.е. я понимаю что нужно дождаться загрузки скрипта: но как я вставляю сюда
window.addEventListener('DOMContentLoaded', function()скрипт все перестает работать. т.е. window.addEventListener -> дожидается когда загрузиться страница, но не когда я нажму на мышку. |
Часовой пояс GMT +3, время: 04:53. |