SWT Browservaluate(..) не может вызвать функцию javascript, когда она находится в файле.JS

Я использую объект SWT Browser для загрузки веб-страницы следующим образом:

Browser browser = new Browser(parent, SWT.BORDER);
browser.setUrl("C:\\Users\\XXXXXXXXX\\blockproperty.html");

У меня есть кнопка на странице HTML, как показано ниже, которая вызывает функцию JS, когда происходит событие нажатия кнопки:

blockproperty.html

<div class="pull-right ">
    <button type="button" ng-click="undeployprojects()" class="btn btn-default margin-l-1">UnDeploy Selected Projects </button>
    <button type="button" ng-click="deployprojects()" class="btn btn-default margin-l-1">Deploy Selected Projects  </button>
</div>

У меня есть файл JS (называемый app.js), который вызывается со страницы HTML, когда происходит указанное выше событие нажатия кнопки.

App.js

$scope.deployprojects = function() {
 $scope.loaded=false;
 $scope.javaprojects = JSON.parse(deployApplication(angular.toJson($scope.tempJavaProject)));  
 };
 
  
  // Function to perform undeploy operation
  
 $scope.undeployprojects = function() {
  $scope.loaded=false;
  $scope.tempJavaProject = JSON.parse(unDeployApplication(angular.toJson($scope.tempJavaProject)));  
 };

Я также включил спиннер CSS, который будет выполняться на основе флага "загружен", как показано ниже:

CSS

<div class="spinner-container" ng-if="!loaded" style="position:absolute;left:50%;top:50%">
<div class="spin-circle"></div>
<div class="spin-inner-circle"></div>
</div>

ЦЕЛЬ:

Идея состоит в том, чтобы показать занятый спиннер (spin-circle), когда событие нажатия кнопки происходит до тех пор, пока не завершится фоновая операция.

Примечание: я использую Angular JS для достижения этой цели.

Вопросы:

  1. Из App.js я смог вызвать метод Java с помощью API функции браузера, предоставляемого eclipse SWT. Но обратная операция (вызов функции JS из JAVA SWT), по-видимому, не происходит, когда JS был перемещен в файл.js.

  2. Если у меня есть код JavaScript в файле HTML, как показано ниже, то browser.evaluate("return stopBusySpin();"); похоже на работу.

<script type=text/javascript>
function stopBusySpin(){
 //$scope.loaded=true;
    alert("test")
}
</script>

Я сталкиваюсь с проблемой, только если я перемещаю код JavaScript в отдельный файл JS. Поскольку я использую Angular JS, у меня не может быть кода javascript внутри HTML-страницы, и, следовательно, мне нужно переместить его в файл JS.

Я подозреваю, что класс Java не смог найти файл App.js и, следовательно, browser.evaluate(..) Метод не может вызвать функцию, определенную в "App.js".

Есть ли способ сказать браузеру SWT, чтобы найти файл App.JS??

Любая помощь приветствуется!!

0 ответов

Другие вопросы по тегам