Расширение Safari, как передать сообщение с глобальной страницы на текущую веб-страницу - PullRequest
0 голосов
/ 08 декабря 2018

Я пытаюсь создать расширение для сафари, которое позволяет пользователю щелкнуть правой кнопкой мыши контекстное меню, а затем начать выполнение какой-либо встроенной функции JavaScript на текущей веб-странице пользователя.

Теперь я могу получить команду изконтекстное меню в моем глобальном html, но я не могу передать это сообщение на веб-страницу пользователя.

Ниже приведен мой код:

Мой global.html:

<!DOCTYPE HTML>
<html>
<head>
<title>global HTML page</title>
<script type="text/javascript">

function bigCalc(startVal, event) {
    var endVal = startVal + 2;
    // return to sender
    safari.application.activeBrowserWindow.activeTab.page.dispatchMessage("theAnswer", endVal);
}

function performCommand(event) {
    if (event.command === "cmd-from-context-menu") {
        var startVal=5;
        bigCalc(startVal, event);
    }
}
safari.application.addEventListener("command", performCommand, false);

</script>
</head>
<body>
</body>
</html>

Мой inject.js:

function getAnswer(theMessageEvent) {
    if (theMessageEvent.name === "theAnswer") {
        var calculatedVal=theMessageEvent.message;
        document.getElementById("answer").innerHTML=calculatedVal;
    }
}
safari.self.addEventListener("message", getAnswer, false);
...