2017-10-09 3 views
0

JxBrowserを使用してJava Javascriptブリッジを設定しようとしています。 onScriptContextCreatedメソッドが呼び出されていないため、その理由がわかりません。JxBrowser onScriptContextCreatedが呼び出されていません

Javaアプリケーションにブラウザが組み込まれています。ボタンをクリックすると、「howdy」と表示されたウィンドウが表示されますが、「hello」はJavaコンソールには決して印刷されません。私はonScriptContextCreatedメソッドでデバッグ行を投げてしまい、決してヒットしません。ここで

は、Javaコードは

webBrowser.addScriptContextListener(new ScriptContextAdapter() {  
      @Override 
      public void onScriptContextCreated(ScriptContextEvent event) { 
      Browser browser = event.getBrowser(); 

      JSValue window = browser.executeJavaScriptAndReturnValue("window"); 
      System.out.println("Setting property"); 
      window.asObject().setProperty("sendNSCommand", new JSFunctionCallback() { 

       @Override 
       public Object invoke(Object... os) { 
        String command = (String) os[0]; 
        System.out.println("Command from JavaScript: " + command); 
        return null; 
       } 
      }); 
     } 
    }); 

されており、ここで私のサンプルWebページには、このコードサンプルが正常に動作よう

<html> 
<head> 
    <script> 
     function callMe() { 
      sendNSCommand2("howdy"); 
      sendNSCommand("hello"); 

     } 

     function sendNSCommand2(x) { 
      window.alert(x); 
     } 
    </script> 
</head> 
<body> 
<input type="button" value="test" onClick="callMe()" /> 
</body> 
</html> 

答えて

0

が見えるです。 ローカル環境で起動した後、「設定プロパティ」行がJavaコンソールに表示されます。 「テスト」ボタンをクリックすると、「howdy」ダイアログが表示されます。このダイアログで「OK」ボタンをクリックすると、Javaコンソールに「JavaScriptからのコマンド:hello」という行が表示されます。

関連する問題