Из введенного вами скрипта вам нужно отправить сообщение на глобальную страницу, в котором говорится открыть новую вкладку.
В введенном скрипте:
safari.self.tab.dispatchMessage('openUrlInNewTab', 'http://www.example.com/');
// the message name 'openUrlInNewTab' is arbitrary
В скрипте глобальной страницы:
function handleMessage(msgEvent) {
if (msgEvent.name == 'openUrlInNewTab') {
safari.application.activeBrowserWindow.openTab().url = msgEvent.message;
}
}
safari.application.addEventListener('message', handleMessage, false);
(Вот соответствующий раздел руководства по разработке расширений Safari.)
Однако, если вы хотите открыть новую вкладку в другом окне, а не в самом верхнем (которое в вашем случае предположительно будет вашим всплывающим окном), вам нужно как-то идентифицировать другое окно. Например, перед тем, как открыть всплывающее окно, вы можете скопировать активное окно в переменную, например:
var targetWin = safari.application.activeBrowserWindow;
Затем, когда вы хотите открыть в нем новую вкладку, используйте:
targetWin.openTab().url = msgEvent.message;