2015-07-09 3 views
2

У меня есть приложение Java (Applet с двумя кнопками Stop and Start), когда я нажимаю кнопку кнопки запуска метода в скрипте, будет выполняться. Но мой чистый код JavaScript в Chrome Extension. Когда я нажимаю кнопку запуска Click event метод в JavaScript будет выполняться. Мой вопрос - это метод, вызывающий штраф, но я не могу выполнить код расширения Chrome (сообщение «Передача»).Вызов JavaScript-метода из Java-приложения

Это мой код приложения 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

Рефакторинг кода Java для передачи по ссылке. Поскольку чистый javascript не может понять вашу ситуацию с событием для передачи сообщений.

+0

Но метод, вызывающий штраф ... ударил по телефону хром код расширения, если он работает, это нормально для моего требования. – Sai

+0

[java всегда проходит по значению, нет способа изменить поведение Java для передачи по ссылке] (http://javadude.com/articles/passbyvalue.htm) – beresfordt

+0

Java передает объекты в качестве ссылок, и эти ссылки передаются по значению , – nolines