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