当我单击脚本中的开始按钮方法时将执行Java Application(Applet具有两个按钮停止和启动)。但是我在Chrome扩展程序下执行了纯JavaScript代码。当我单击开始按钮时将执行JavaScript中的Click事件方法。我的问题方法调用正常,但无法执行Chrome扩展程序代码(消息传递)。
这是我的Java应用程序代码。
addButton.addActionListener(new ActionListener() {
public void actionPerformed(ActionEvent arg0) {
Object val = ((JavascriptExecutor) driver).executeScript("return set();");
System.out.println("read java script value :" + val);
JOptionPane.showMessageDialog(frame.getComponent(0), "Hi Welcome To Start message Passing");
System.out.println("Hi Welcome To Start message Passing");
}
});
我的Chrome扩展程序代码。
function set() {
chrome.runtime.sendMessage({
greeting: "start"
}, function (e) {
window.alert("window alert method ");
var backgroundPageConnection = chrome.runtime.connect({
name: "panel"
});
backgroundPageConnection.postMessage({
name: 'init',
tabId: chrome.devtools.inspectedWindow.tabId,
inspectedEvents: default_selected
});
});
}
最佳答案
重构您的Java代码以通过引用传递。因为纯Javascript无法理解消息传递的事件情况。