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

Как вызвать выполнение JS-кода после открытия страницы?

Pulsar Music Ученик (155), на голосовании 1 год назад
Например, если хочу составить алгоритм, чтобы открылся сайт ВК, полностью прогрузился и потом сработал JS-код alert("hi")
Голосование за лучший ответ
Андрей Панарин Искусственный Интеллект (249433) 1 год назад
 





Страничка.



А на сайте ВК вы ничего не пропишете, так как это не ваш сайт.
При загрузке страницы ВК грузится то, что даст вам ВК.
Спрайк Спрайкович Мастер (1685) 1 год назад
Для вызова выполнения JS-кода после открытия страницы, можно использовать различные подходы, но один из наиболее простых и распространенных - это использование события "load" на объекте window.

Событие "load" происходит, когда веб-страница и все ее ресурсы полностью загружены. Таким образом, вы можете добавить слушателя события "load" к объекту window, который будет вызывать ваш JS-код после полной загрузки страницы.

Вот пример кода, который открывает сайт ВК, ждет полной загрузки страницы и затем вызывает функцию, которая содержит ваш JS-код:
 // открываем сайт ВК 
window.location.href = "https://vk.com";

// добавляем слушателя события "load" к объекту window
window.addEventListener("load", function() {
// здесь вызываем ваш JS-код, например:
alert("hi");
});
Этот код перенаправит нас на страницу ВК, а затем дождется ее полной загрузки и вызовет функцию, содержащую ваш JS-код (в данном случае alert("hi")). Обратите внимание, что для вызова JS-кода на странице ВК, необходимо убедиться в том, что он разрешен на странице с помощью расширения или другими способами, так как ВКонтакте блокирует выполнение большинства скриптов на своей странице из соображений безопасности.
ПавелПросветленный (25621) 1 год назад
Код перестанет выполняться сразу после первой строчки кода из-за перезагрузки страницы. Код никаким образом не может выполнится из-за перехода на другой сайт с уже собственным кодом.

Единственный метод, в котором это МОГЛО БЫ сработать это открытие страницы в новой вкладке с доступом к объекту window новой страницы. Например так:
 const newWindow = open('https://vk.com/'); 
newWindow.addEventListener('load', () => newWindow.alert('Чау вася!'));
Но это не работает на страницах чужого домена по соображениям безопастности.
Яков Гото Искусственный Интеллект (320909) 1 год назад
На чужих сайтах нужно расширение типа Tampermonkey или User JavaScript and CSS. Чтобы код сработал после загрузки полного DOM-дерева через такое расширение, нужно использовать конструкцию формата:
 window.onload = function () {
// весь код скрипта
}
Сам это постоянно делаю и в большинстве случае достаточно такой примитивной проверки. Однако в случае с динамически подгружаемыми страницами, например, бесконечной лентой, где посты появляются постепенно, такой вариант не прокатит, ибо повторное обновление содержимого не то же самое, что первичная загрузка страницы.

Чтобы проверять загрузку контента динамически, нужно вешать обсервер...
 const obsever = new MutationObserver(rec => {
mymy();
});

observer.observe(element, {
childList: true,
subtree: true,
});

function mymy () {
// весь код скрипта
}
В качестве element указывается элемент, за обновлением которого нужно следить. Но бездумное использование может привести к зависанию страницы намертво.
Павел Просветленный (25621) 1 год назад
На сайт VK можно добавить скрипт при помощи расширения. Другой вопрос - как конкретно ты его желаешь открыть? С другой страницы? Через VBS, BAT скрипты или что?
Pulsar MusicУченик (155) 1 год назад
например c другой страницы, или через bat-
файл
Павел Просветленный (25621) Pulsar Music, через расширение Violentmonkey например. https://violentmonkey.github.io/get-it/ Добавляешь скрипт на первый сайт
 open('https://vk.com/'); 
Добавляешь скрипт на VK.
 alert('Вася!'); 
Добавив в параметрах VK скрипта:
 @run-at      document-idle 
Для запуска скрипта после загрузки страницы.
Похожие вопросы