2013-09-17 2 views
0

В моем расширении я хочу открыть новую вкладку, когда нажимается кнопка панели инструментов (работает), отображается статическая HTML-страница с JavaScript на вкладке (работает) и проходит данные (URL-адрес с исходной страницы) на новую вкладку (не работает). Я пробовал:Расширение Safari, открываем новую вкладку с HTML-страницей, передаем параметры

  • Использование параметров запроса, как myTab.url = safari.extension.baseURI + 'page.html?' + params, но целевая страница, кажется, не имеют место назначен (location.search не дает никакого результата).

  • myTab.page.dispatchMessage("url", "someUrl"); после открытия вкладки, но сообщение никогда не приходит на новую вкладку (я подозреваю, что это уже «через», когда вкладка открылась).

Любые предложения?

ответ

1

Я разобрал document.URL на открытой странице для определенного параметра, и это сработало для меня. Например.

function __onLoad() 
{ 
    var p = $.url(document.URL); 
    alert(p.param("url")); 
} 

И две возможные причины пропущенного сообщения:

  • Вы не добавило сообщений события слушателя на вашей странице
  • Вы называетесь DispatchMessage, прежде чем слушатель событий был добавлен

Проверка разработки разработки Safari по адресу https://developer.apple.com/library/safari/documentation/Tools/Conceptual/SafariExtensionGuide/MessagesandProxies/MessagesandProxies.html

+0

Простите мое невежество, но что это за '' $ .url (document.URL); ''? Является ли это специфическим для Safari или какой-либо библиотекой? Я получаю '' ReferenceError: не могу найти переменную: $ ''. – qqilihq

+0

извините, неясно. Я использовал jQuery url parser плагин от https://github.com/allmarkedup/jQuery-URL-Parser. Но я просто хотел показать, что вы можете использовать регулярное выражение или любой другой инструмент, чтобы получить свой параметр из документа url. – Andrey

+0

Извините, что так поздно возвращался; Я просто проверил, что это работает просто с помощью '' document.URL''. Спасибо! – qqilihq

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