我正在尝试将我的 safari 扩展中的设置中的变量传递给注入的 javascript。我设法让消息传递,但不知道如何在 handleMessage 范围之外使用该变量,以便可以在注入的文件中使用它。handleMessage 函数中的变量printerNAME似乎无法在函数外部访问?
全局.html
safari.application.addEventListener('message', handleMessage, false);
function handleMessage(msg) {
if(msg.name === 'printerName') {
alert(msg.message);
}
var printerName = safari.extension.settings.printerName;
safari.application.activeBrowserWindow.activeTab.page.dispatchMessage('printerName', printerName);
}
注入的.js
var printerNAME;
function handleMessage(msg) {
if(msg.name === 'printerName') {
printerNAME = msg.message;
}
}
if (window.top === window) {
safari.self.addEventListener('message', handleMessage, false);
safari.self.tab.dispatchMessage('printerName', printerNAME);
alert(printerNAME);
}