Расширение Google Chrome: использовать Javascript в уведомлениях о webkit? - PullRequest
4 голосов
/ 22 мая 2010

Я следовал Руководству разработчика по Google Chrome Extensions и до сих пор смог создать расширение с действием браузера без всплывающего окна, которое вызывало бы уведомление веб-набора в формате HTML .

Факт в том, что этот HTML-файл содержит кнопки действий, ссылки и javascript, но ни одна из них, похоже, не отвечает.

Это не совсем обычное поведение или есть способ встраивать javascript / links / buttons в эти уведомления webkit?

EDIT:

Вот несколько новых идей по этому вопросу:

Javascript

Вот страница уведомлений HTML, которая не работает:

<html>
<head>
<script>
  alert("hey");
</script>
</head>
<body>
  content
</body>
</html>

В результате все уведомление пустое; текст «содержимое» не отображается.

Но если я уберу "оповещение", на экране появится текст "content" .

Сначала я подумал, что Javascript блокирует правильное отображение страницы, но я попробовал что-то еще:

<script>document.write("content");</script>

Эта команда JavaScript выполнена правильно и отображает текст "content" . Затем можно предположить, что Javascript включен даже в уведомлениях рабочего стола webkit, но функция «alert» отключена и нарушает отображение страницы уведомлений.

Ссылки

Некоторые ссылки работают, некоторые нет. Вот краткий список тех, кого я тестировал:

<a href="http://www.google.com/">Link</a>                   # => Doesn't work
<a href="http://www.google.com/" target="_top">Link</a>     # => Doesn't work
<a href="http://www.google.com/" target="_parent">Link</a>  # => Doesn't work
<a href="http://www.google.com/" target="_blank">Link</a>   # => Works (new tab)

Ответы [ 2 ]

2 голосов
/ 13 ноября 2012

ОБНОВЛЕНИЕ: createHTMLNotification() было удалено из черновой спецификации, а также из Chrome , так что это больше не будет работать.

Самым близким является обработчик onclick навсе окно уведомлений.Это менее заметно (не похоже на ссылку), и я не проверял, можно ли перейти по ссылке с него.

2 голосов
/ 23 мая 2010

Все это объясняется в Спецификации API уведомлений Chromium Desktop , где четко сказано, что:

Если пользовательский агент реализует createHTMLNotification, он должен показывать уведомления HTML в качестве независимых контекстов просмотракоторые эквивалентны по функциональности любой другой веб-странице HTML, за исключением следующих свойств:

  • Невозможно перемещаться по уведомлению .Атрибут Location объекта окна в контексте уведомления должен быть доступен только для чтения.Все ссылки должны открываться в новых контекстах просмотра без уведомлений.
  • Если close () вызывается для объекта окна в контексте уведомления в ответ на жест пользователя, пользовательский агент должен действовать так, как если бы пользователь закрылуведомление, включая всю необходимую обработку событий.
...