Safari扩展程序如何将消息从全局页面传递到当前网页

时间:2018-12-08 08:57:20

标签: javascript safari safari-extension

我正在尝试创建一个野生动物园扩展程序,该扩展程序允许用户右键单击上下文菜单,然后开始在用户当前的网页上执行一些注入的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);

0 个答案:

没有答案