从Java Application

时间:2015-07-09 06:02:22

标签: javascript java google-chrome-extension

我有Java应用程序(Applet有两个按钮Stop and Start),当我点击脚本中的开始按钮方法将被执行。但我在Chrome Extension下的纯JavaScript代码。当我点击开始按钮点击JavaScript中的事件方法将被执行。我的问题是方法调用正常但无法执行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
         });
     });
 }

1 个答案:

答案 0 :(得分:-1)

重构您的java代码以通过引用传递。因为纯粹的javascript无法理解你的事件情况,因为消息传递。