Изменить страницу Chrome 4xx

Я развертываю систему киоска, которая использует Chrome для отображения веб-приложения Java, работающего в причале, запущенного с оболочкой службы Windows. После запуска системы требуется некоторое время, чтобы причал был готов к обслуживанию контента, поэтому сейчас у меня происходит ожидание, которое затем запускает Chrome в режиме киоска. Это довольно уродливо, ненадежно и медленно.

Что я пытаюсь сделать, чтобы сделать его более плавным, так это использовать расширение Chrome, которое обнаруживает ошибку 4xx и устанавливает тайм-аут, который перезагружает страницу. У меня это работает как есть, но это все еще уродливое решение, поскольку страница обновляется каждые 3 секунды, и это страница «Ой! Google Chrome не удалось найти ...», которая отображается пользователю, пока они ждут. Я могу исправить первую проблему с запросом ajax в фоновом режиме, чтобы определить, когда страница готова, но я действительно хочу показать пользователю хороший экран «Загрузка» вместо страницы с ошибкой. Я не разработчик расширений Chrome, и все мои попытки исправить это с помощью расширения пока не увенчались успехом.

Я думал, что можно будет настроить страницу с ошибкой, но я не могу найти никакой информации о том, как это сделать, поскольку все результаты поиска, которые я нахожу в теме, сосредоточены вокруг проблемы минимального размера 512.


person Dewey Vozel    schedule 12.02.2013    source источник


Ответы (2)


Вы можете настроить страницу ошибки с помощью webNavigation API. Добавьте прослушиватель событий для события onErrorOccurred и обновите соответствующие сведения.

Проверьте пример кода в качестве ссылки.

Демонстрация

manifest.json

Зарегистрирована фоновая страница и добавлены все соответствующие разрешения в файл манифеста.

{
    "name": "Customize error page",
    "description": "",
    "version": "1",
    "manifest_version": 2,
    "background": {
        "scripts": [
            "background.js"
        ]
    },
    "permissions": [
        "webNavigation",
        "<all_urls>"
    ],
    "web_accessible_resources": [
        "page.html"
    ]
}

фон.js

Перенаправление на нашу пользовательскую страницу в случае какой-либо ошибки, вы можете настроить ее на желаемый уровень.

//Adding a Listener to Error Occured Event
chrome.webNavigation.onErrorOccurred.addListener(function (details) {
    // Updating the browser window with desired URL
    chrome.tabs.update(details.tabId, {
        url: chrome.extension.getURL("page.html")
    });
});

страница.html

Какой-то тривиальный код

<html>
    <style>
        body {
            background:yellow;
            position:absolute;
        }
    </style>

    <body>
        <div style="top: 200px;position: absolute;left: 500px;width: 500;font-size: 40px;">This is a Nice Description</div>
    </body>

</html>

Справка

person Sudarshan    schedule 13.02.2013

Перейдите в параметры, настройки конфиденциальности и снимите флажок:

«Используйте веб-службу для устранения ошибок навигации»

Подробные инструкции здесь.

person Wasafa1    schedule 12.02.2013
comment
Проблема в том, что сервер не работает, поэтому проблема, вероятно, в ошибке 408, а не в ошибке 404. Отсутствует пользовательская страница ошибок на стороне сервера для отображения. - person Dewey Vozel; 13.02.2013