当我单击脚本中的开始按钮方法时将执行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无法理解消息传递的事件情况。

07-24 09:46
查看更多