Я создаю веб-приложение, и одна из страниц приложения должна перенаправлять пользователей либо на другой веб-сайт, либо на домашнюю страницу моего веб-сайта, в зависимости от того, установлено ли у пользователя расширение chrome. Мой код выглядит так:
<!doctype html>
<html lang="en">
<head>
<meta charset="UTF-8">
<title>Tribe</title>
<script>
const EXTENSION_ID = "<%= extensionId %>";
const VIDEO_PLATFORM = "<%= videoPlatform %>";
const ROOM_ID = "<%= roomId %>";
chrome.runtime.sendMessage(EXTENSION_ID, {
type: "startSession",
videoPlatform: VIDEO_PLATFORM,
roomId: ROOM_ID
}, response => {
if (!response) {
// Redirect to landing page
window.location.replace("/");
}
})
</script>
</head>
<body>
Redirecting...
</body>
</html>
Обратите внимание, что в теге script я вызываю асинхронную функцию chrome.runtime.sendMessage
, которая принимает обратный вызов. Я знаю, что код в теге script будет запущен до загрузки остальной части страницы, но есть ли способ «заблокировать» загрузку страницы, пока не будет вызван обратный вызов? По сути, если требуется перенаправление, я вообще не хочу загружать эту страницу пользователю.