Проверка наличия/добавление нового стиля
upd.1 Было неверно задано условие. Вместо '==' нужно читать '!=='.
upd.2 Проблема решена после установки следующего условия: if (typeof(sheet) !== 'undefined'), хоть и проверка на не-undefined лишь сиюминутное решение задачи. Благодарю за возможность высказаться,обдумать и исправить собственную проблему. Здравствуйте. В процессе обучения возникла неразрешимая (на данный момент) проблема. Её суть заключается в том, что происходит безуспешная попытка добавления нового элемента в DOM-дерево. При первом запуске кода новый элемент, естественно, не создан, alert(sheet) пишет 'undefined' , но при повторе alert(sheet) выдает 'Object HTMLStyleElement'. Это значит, что элемент успешно создан и значение присвоено переменной sheet, но следующая проверка (sheet !== 'undefined') снова дает на исполнение блок else. Думал, что проблема в установленной зоне видимости, но ее изменение ничего не дало. Тем не менее, запись (typeof(sheet) !=== 'undefined') при первом же запуске дает ошибку на строке sheet.innerHTML, вида 'sheet is undefined'. Прошу прощения за глубокую вложенность и за возможную неточность в терминологии. <script type = "text/javascript"> window.onload = function() { var tb = document.getElementById('test_button'); var sheet; if (tb) { tb.onclick = function() { if (sheet !== 'undefined') { sheet.innerHTML = "div {border: 2px solid black;}"; document.body.appendChild(sheet); alert('Ok'); } else { alert(sheet); alert('Not ok!'); sheet = document.createElement('style'); //sheet.parentNode.removeChild(sheet); } } } }; </script> <form id = "test_form"> <input type = "button" value = "Click" id = "test_button" /> </form> <div> <p> Well, I got a woman. Way cross town. She's good to me. Oh, oh, yeah! </p> </div> |
Часовой пояс GMT +3, время: 11:12. |