Вы можете использовать «специальное» сообщение canLoad
. Технически, он предназначен для отправки сообщения и возврата значения, связанного с возможностью загрузки элемента на странице, но на самом деле это просто синхронное сообщение, на которое глобальная HTML-страница отвечает так же, как и любое другое. Вы бы просто искали сообщение с именем 'canLoad'
вместо того, чтобы передавать произвольное имя сообщения:
// injected script
var myVar = safari.self.tab.canLoad( event );
// global HTML file
<!DOCTYPE html>
<script type="text/javascript" charset="utf-8">
safari.application.addEventListener( 'message', listen, true );
function listen( msgEvent ) {
switch( msgEvent.name ) {
case 'canLoad':
msgEvent.message = 'My return value';
break;
}
}
</script>
Подробнее о сообщении canLoad можно прочитать в руководстве по разработке.