2013-12-11 2 views
2

Когда вы вводите неверный адрес, в Chrome отображается серая страница с надписью «К сожалению, Google Chrome не смог найти X. Вы имели в виду Y?»Управление страницей «Упс! Chrome не удалось найти ...»?

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

Поскольку расширение, как предполагается, позволяет управлять браузером самостоятельно, очень важно, чтобы в любое время, когда эта страница открывается, он автоматически возвращается на страницу I do имеет доступ к скрипту контента, а затем отображает вместо этого.

Это невозможно?

ответ

3

Вы можете использовать chrome.webNavigation.onErrorOccurred для обнаружения таких ошибок и перенаправить на другую страницу, если хотите. Если у вас нет оснований для этого, я настоятельно рекомендую против, реализующего такую ​​функцию, поскольку это может нарушить ожидания пользователя о том, как работает браузер.

Тем не менее, пример кода:

chrome.webNavigation.onErrorOccurred(function(details) { 
    if (details.frameId === 0) { 
     // Main frame 
     chrome.tabs.update(details.tabId, { 
      url: chrome.runtime.getURL('error.html?error=' + encodeURIComponent(details.error)) 
     }); 
    } 
}); 
+0

мне это нужно, потому что это для расширения голосового управления. Когда пользователь говорит «Go to X.com», если он его неправильно понимает, он вызывает эту страницу Oops, и голосовое управление перестанет работать. Для параплегического пользователя, голосовое управление не может остановиться в любое время, или кто-то должен запуститься снова для них. Спасибо за отличный ответ. – Aerovistae

+0

@Aerovistae Вы рассмотрели возможность использования [фоновой страницы] (https://developer.chrome.com/extensions/background_pages.html) с помощью кнопки браузера [https://developer.chrome.com/extensions/browserAction .html)? –

+0

@Aerovistae «Oops not found» - это не единственная страница, где, кстати, отключены сценарии контента. Другие страницы включают (но не ограничиваются): chrome :, about :, chrome-extension :. data :, blob :, file: (когда «разрешить доступ к файлам» отключен) и любую страницу в Интернет-магазине Chrome. –

1

Согласно the docs на страницах только расширение может быть переопределены:

  • Менеджер закладок
  • История
  • Новая вкладками

Таким образом, расширение может 't изменить/contol/повлиять на поведение браузера относительно страницы «Oops! ...».

Смежные вопросы