Mail.ruПочтаМой МирОдноклассникиВКонтактеИгрыЗнакомстваНовостиКалендарьОблакоЗаметкиВсе проекты

Как подставить в JS переменную при загрузке страницы?

royalpiano11 S Ученик (22), на голосовании 1 год назад
x=document.getElementById('app').innerHTML;

Нужно чтобы эта переменная передавалась внутрь функции Яваскрипта body onload.
Голосование за лучший ответ
Matz Просветленный (36096) 1 год назад
let x;
document.body.addEventListener('load', () => {
x = document.getElementById('app').innerHTML;
});
royalpiano11 SУченик (22) 1 год назад
Ставлю так:
body onload="x=document.getElementById('app').innerHTML;alert(x);"
хочу чтобы эта х была внутри функции доступна.
не работает
Matz Просветленный (36096) royalpiano11 S, ну я же тебе написал как это грамотно сделать, подтяни матчасть, судя по всему ты слабо представляешь как это в JS функционирует...
Павел Просветленный (25620) 1 год назад
Правильно так:
 addEventListener('DOMContentLoaded', () => {
const x = document.getElementById('app')?.innerHTML;
// остальной код...
});
Или так (внешний скрипт с атрибутом defer):
  
 // index.js
const x = document.getElementById('app')?.innerHTML;
// остальной код...
royalpiano11 SУченик (22) 1 год назад
Ставлю так
body onload="x=document.getElementById('app').innerHTML;alert(x);"
хочу чтобы эта х была внутри функции доступна.
не работает
Павел Просветленный (25620) royalpiano11 S,
  1. Внутри каккой функции? В моём примере переменная доступна внутри функции передаваемой в addEventListener. Этого должно быть достаточно.
  2. Не "body.onload" а "document.body.onload", window.onload или просто "onload = ...".
  3. onload присваиваешь не строку а функцию! onload = function(){...}.
  4. Учи addEventListener. onload имеет ограничения.
royalpiano11 SУченик (22) 1 год назад
нужно <body onload="x=document.getElementById('app').innerHTML;">
так все равно неопределена
Павел Просветленный (25620) royalpiano11 S, я написал как это делается правильно. Воспользоваться советом или нет, дело твоё. Так как делаешь ты - не правильно. Не понимаю чего конкретно ты хочешь добится. Публикуй свой код и задачу, если хочешь более конкретный и развёрнутый ответ.
royalpiano11 SУченик (22) 1 год назад
function initMap() {
тут получить var="s"+document.getElementById('app').
<div id="app">{{ message }}</div>
Dlazder Мудрец (16899) 1 год назад
let x;
documebt.body.onload = () => {
x = 10
}
royalpiano11 SУченик (22) 1 год назад
не работает
Dlazder Мудрец (16899) royalpiano11 S, нет, работает!
DlazderМудрец (16899) 1 год назад
Ой, я ошибся) document.body это во первых. А во вторых просшуиватель загрузки добавляется на window типа
 window.onload = () => {} 
Из головы вылетело
Похожие вопросы