[英]How to access the safari extension methods from a newly created tab?
我正在开发一个野生动物园扩展。 我成功创建了一个全局页面,该页面对工具栏按钮的按下做出反应。 此操作将在活动窗口中打开一个新选项卡。
我现在的问题是:如何在新打开的浏览器选项卡中从全局页面访问定义的变量,该选项卡包含扩展中的内容html文件? 是否可以像弹出窗口一样共享变量和函数?
safari.extension.globalPage.myFunction();
不起作用...
谢谢sn3ek
内容脚本只能通过消息传递与全局页面进行通信。
safari.self.addEventListener('message', handleMessage, false);
// Send a message to the global page
safari.self.tab.dispatchMessage('requestVariables');
// Receive a message back from the global page
function handleMessage(msg) {
if (msg.name === 'returnVariables') {
console.log(msg.message);
}
}
safari.application.addEventListener('message', handleMessage, false);
// Receive a message from the injected script
function handleMessage(msg) {
if (msg.name === 'requestVariables') {
var message = {prop: 'val'};
safari.application.activeBrowserWindow.activeTab.page.dispatchMessage('returnVariables', message);
}
}
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.