yaNastia
@yaNastia

Как получить доступ к свойству объекта window, до загрузки страницы?

Я хочу получить доступ до объекта "window.ZC_CONFIG", до загрузки страницы, но получаю undefined.
var localStorageData = require('../../utils').localStorage

module.exports = async (page, scenario) => {
    await require('./loadCookies')(page, scenario)
    require('./interceptImages')(page, scenario)

    await page.evaluateOnNewDocument((localStorageData) => {
        (async () => {
            await console.log(window.ZC_CONFIG) // здесь пытаюсь асинхронно отобразить свйоство
        })().catch((err) => {
            console.error(err)
        })
        localStorage.clear()
        localStorage.setItem("vuex", JSON.stringify(localStorageData))
    }, localStorageData)
}


Когда делаю задержку, перед выводом в консоль то все отображается

setTimeout(() => {
            console.log(window.ZC_CONFIG)
        }, 1000)


Помогите пожалуйста з решением задачи
  • Вопрос задан
  • 143 просмотра
Решения вопроса 1
Seasle
@Seasle Куратор тега JavaScript
window.addEventListener('DOMContentLoaded', () => { ... });


Либо порядок скриптов меняйте, конечно, если window.ZC_CONFIG устанавливается синхронно.
Ответ написан
Комментировать
Пригласить эксперта
Ответы на вопрос 1
@become_iron
Если установка window.ZC_CONFIG происходит асинхронно, можно как-то так:

async function setZcConfig () {
  window.ZC_CONFIG = 'some_value'
}

const setZcConfigPromise = setZcConfig()

module.exports = async (page, scenario) => {
  await page.evaluateOnNewDocument((localStorageData) => {
    await setZcConfigPromise
    // some code
  }
)
Ответ написан
Комментировать
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Войти через центр авторизации
Похожие вопросы