【发布时间】:2015-07-21 22:15:23
【问题描述】:
我正在尝试将一个变量从我的 Safari 扩展程序中的设置传递给注入的 javascript。我设法让消息传递,但不知道如何在 handleMessage 范围之外使用该变量,以便可以在注入的文件中使用它。 handleMessage 函数中的变量 printerNAME 似乎无法在函数外部访问?
global.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);
}
injected.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);
}
【问题讨论】:
标签: javascript safari safari-extension safari7 safari8