Я пытаюсь создать расширение для сафари, которое позволяет пользователю щелкнуть правой кнопкой мыши контекстное меню, а затем начать выполнение какой-либо встроенной функции 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);