2017-04-25 10 views
0

私はいくつかのバグを除いて機能しているユーザーインターフェイスをリバースエンジニアリングすることに取り組んでいます。 HTML、CSS、JavaScriptでコード化され、REST APIを介してデータを取得します。 UIはWindows環境で設定されます。Angular.jsを参照せずにロードしますか?

UIのindex.htmlホームページを見ていたとき、インターフェイスにかなりのAngular.jsがありますが、angular.jsを呼び出すスクリプトはコメントアウトされています。私はangular.jsが呼び出されることなくサーバー上でどのように動作するのか混乱しています。あなたが通常どおりに呼び出すことなくHTMLで参照することなく、サーバー上のangular.jsを参照または解析する方法はありますか?

私は混乱しています。どんなアイデアも参考になるでしょう。私は以下のindex.htmlファイルを含めました:

<!DOCTYPE html> 
<html xmlns="http://www.w3.org/1999/xhtml"> 
<head> 
    <title></title> 
    <meta charset="utf-8"/> 
    <meta name="viewport" content="width=device-width"> 
    <meta http-equiv="cache-control" content="no-cache, no-store"/> 
    <meta http-equiv="expires" content="-1"/> 
    <meta http-equiv="pragma" content="no-cache"/> 
    <link rel="icon" href="content/images/favicon.png"/> 
    <!--<script src="/bower_components/angular/angular.js"></script> 
    <script src="/bower_components/jquery/dist/jquery.min.js"></script> 
    <script src="/bower_components/bootstrap-sass/assets/javascripts/bootstrap.min.js"></script>--> 
    <!--<script src="/js/app.js"></script>--> 
    <link rel="stylesheet" type="text/css" href="content/icomoon/style.css?0.0.0.164"> 
    <link rel="stylesheet" type="text/css" href="content/css/bootstrap.css?0.0.0.164"> 
    <link rel="stylesheet" type="text/css" 
      href="bower_components/bootstrap-dialog/dist/css/bootstrap-dialog.min.css?0.0.0.164"> 
    <link rel="stylesheet" type="text/css" href="bower_components/jquery-ui/themes/base/jquery-ui.css?0.0.0.164"> 
    <link rel="stylesheet" type="text/css" href="bower_components/angular-ui-grid/ui-grid.css?0.0.0.164"> 
    <link rel="stylesheet" type="text/css" href="bower_components/spectrum/spectrum.css?0.0.0.164"> 
    <link rel="stylesheet" type="text/css" 
      href="custom_components/eonasdan-bootstrap-datetimepicker/css/bootstrap-datetimepicker.css?0.0.0.164"> 
    <link rel="stylesheet" type="text/css" href="bower_components/slick-carousel/slick/slick.css?0.0.0.164"> 
    <link rel="stylesheet" type="text/css" href="bower_components/slick-carousel/slick/slick-theme.css?0.0.0.164"> 
    <link rel="stylesheet" type="text/css" href="custom_components/loader-display/loadDisplay.css?0.0.0.164"> 
    <link rel="stylesheet" type="text/css" href="content/css/keyboard.css?0.0.0.164"> 
    <link rel="stylesheet" type="text/css" href="content/css/noty.css?0.0.0.164"> 
    <link rel="stylesheet" type="text/css" href="custom_components/ladda-bootstrap/ladda-themeless.css?0.0.0.164"> 
    <link rel="stylesheet" type="text/css" href="content/css/daikin_mis_hmi.css?0.0.0.164"> 
</head> 
<body> 
<div class="navbar navbar-inverse navbar-fixed-top"> 
    <div class="container"> 
     <div class="navbar-header"> 
      <!-- if logged in--> 
      <button ng-if="!isHideMainControls" type="button" class="navbar-toggle" data-toggle="collapse" 
        data-target=".navbar-collapse"> 
       <span class="sr-only">ToggleNav</span> 
       <span class="icon-bar"></span> 
       <span class="icon-bar"></span> 
       <span class="icon-bar"></span> 
      </button> 
      <a class="navbar-brand" ng-click="goHome()"> 
       <img src="content/images/logo.png"> 
      </a> 
      <span ng-if="!isHideMainControls" class="visible-xs visible-sm" alarm-indicator></span> 
      <span ng-if="!isHideMainControls" class="visible-sm" dm-keyboard-widget></span> 
      <span ng-if="!isHideMainControls" class="visible-xs visible-sm" network-mode></span> 
     </div> 

     <div class="navbar-collapse collapse"> 
      <ul class="nav navbar-nav navbar-right"> 
       <li class="hidden-xs hidden-sm"><span 
         ng-if="!isHideMainControls" network-mode></span></li> 
       <li class="hidden-xs hidden-sm"> 
        <span ng-if="!isHideMainControls" alarm-indicator></span> 

        <div dm-keyboard-widget></div> 
       </li> 
       <!-- if logged in--> 
       <li class="divider-vertical hidden-xs hidden-sm"></li> 
       <li ng-class="{'display-none': !isApplicationLoaded}" class="display-none"> 
        <div ng-cloak class="logged-in-user-info" data-toggle=""> 
         <div class="user-name"> 
          {{sessionUser.firstName}} {{sessionUser.lastName}} 
         </div> 
         <div ng-if="!isHideMainControls" ng-hide="sessionUser.isGuest" class="log-out"> 
          <a ng-click="logout();" href="#"><span class="glyphicon glyphicon-log-out"></span>{{generalLabels.genlogout}}</a> 
         </div> 
         <div ng-show="sessionUser.isGuest" class="log-out"> 
          <a ui-sref="login" href="#"><span class="glyphicon glyphicon-log-out"></span>{{generalLabels.genlogin}}</a> 
         </div> 
        </div> 
       </li> 
       <li class="visible-xs visible-sm dropdown"> 
        <ul class="submenu" ng-include src="'views/shared-templates/main-menu-items.html'"> 
        </ul> 
       </li> 
      </ul> 
     </div> 
    </div> 
</div> 

<div class="main-wrapper"> 
    <dm-main-menu class="hidden-block-xs hidden-block-sm"></dm-main-menu> 
    <div style="display: none" id="appFailedLoadMessage"></div> 
    <div class="wrap-loader" ng-hide="isApplicationLoaded"> 
     <div id="load-background" class="show-background"> 
      <div class="loading-display"> 
       <img class="ajax-loader" src="custom_components/loader-display/img/ajax-loader.gif"> 
       <br> 

       <div class="display-none"> 
        <img src="content/images/noty/ErrorMessageBackground.png" width="1" height="1" alt=""/> 
        <img src="content/images/noty/SuccessBackground.png" width="1" height="1" alt=""/> 
        <img src="content/images/noty/accept.png" width="1" height="1" alt=""/> 
        <img src="content/images/noty/error_ico.png" width="1" height="1" alt=""/> 
        <img src="content/images/noty/wrong.png" width="1" height="1" alt=""/> 

        <img src="content/images/control-buttons/on_off1.png" width="1" height="1" alt=""/> 
        <img src="content/images/control-buttons/on_off2.png" width="1" height="1" alt=""/> 
        <img src="content/images/control-buttons/switcher1.png" width="1" height="1" alt=""/> 
        <img src="content/images/control-buttons/switcher2.png" width="1" height="1" alt=""/> 
       </div> 
       <span></span> 
      </div> 
     </div> 
    </div> 

    <!-- BreadCrumbs go here--> 
    <div ng-if="!isHideMainControls" class="breadcrumbs"> 
     <div class="container"> 
      <div ncy-breadcrumb></div> 
     </div> 
    </div> 

    <div class="container"> 
     <div class="row"> 
      <div class="col-xs-12"> 
       <div ui-view></div> 
      </div> 
     </div> 
    </div> 
</div> 

<a href="#" class="go-top"><i class="icon-arrow-up icon-large"></i> {{generalLabels.gentop}}</a> 

<div class="footer"> 
    <div class="container"> 
     <div class="row"> 
      <div class="col-sm-4 hidden-xs visible-sm visible-md visible-lg text-center-xxs text-center-xs text-left-sm text-left-md text-left-lg"> 
       <!-- Easter Egg - footer double click show current viewport size and version --> 
       <span class="js-ui-version" style="display:none"></span> 
       <span class="js-viewport-size" style="display:none"></span> 
      </div> 
      <div ng-class="{'display-none': !isApplicationLoaded}" 
       class="display-none col-sm-4 hidden-xs visible-sm visible-md visible-lg text-center-sm text-center-md text-center-lg"> 
       <a target="_blank" ng-href="{{daikinAppliedLink.url}}">{{daikinAppliedLink.text}}</a> 
      </div> 

      <div ng-class="{'display-none': !isApplicationLoaded}" 
       class="display-none col-sm-4 visible-xs hidden-sm hidden-md hidden-lg text-center-xxs text-center-xs"> 
       <a target="_blank" ng-href="{{daikinAppliedLink.url}}">{{daikinAppliedLink.text}}</a> 
      </div> 

      <div class="col-sm-4 visible-xs hidden-sm hidden-md hidden-lg text-center-xxs text-center-xs"> 
       <!-- Easter Egg - footer double click show current viewport size and version --> 
       <span class="js-ui-version" style="display:none"></span> 
       <span class="js-viewport-size" style="display:none"></span> 
      </div> 
     </div> 
    </div> 
</div> 
<script src="../bower_components/fastclick/lib/fastclick.js?0.0.0.164"></script> 
<script src="bower_components/requirejs/require.js"></script> 
<script> 

    if ('addEventListener' in document) { 
     document.addEventListener('DOMContentLoaded', function() { 
      FastClick.attach(document.body); 
      //todo workaround fixes the problem with selecting a date on the calendar 
      FastClick.prototype._needsClick = FastClick.prototype.needsClick; 
      FastClick.prototype.needsClick = function (target) { 

       if ($(target).parents('.bootstrap-datetimepicker-widget').length > 0) { 
        return true; 
       } 
       return FastClick.prototype._needsClick.call(this, target); 
      }; 
     }, false); 
    } 

    var scriptsLoadTimeoutSeconds = 60; 

    require.config({ 
     waitSeconds: scriptsLoadTimeoutSeconds, 
     baseUrl: './js', 
     urlArgs: '0.0.0.164' 
    }); 

    require(["./main"]); 

    DisplayAppNotLoadedMessage = function() { 
     document.getElementById('load-background').style.display = 'none'; 

     var errorMessageBlock = document.getElementById('appFailedLoadMessage'); 

     errorMessageBlock.style.display = 'block'; 
     errorMessageBlock.innerHTML = 'The system may be either busy or not currently running, please verify status locally at the System Manager PC or try again later. If the problem persists, refer to IM 1224 for more detailed troubleshooting procedures.'; 
    }; 

    // show error message in case of any resources are not loaded 
    LoadTimeoutId = setTimeout(function() { 
     DisplayAppNotLoadedMessage(); 
    }, (scriptsLoadTimeoutSeconds + 30) * 1000); 
    </script> 
    </body> 
    </html> 
+0

技術的には可能ですが、どこか別の参照(おそらく別のバージョン)が存在しないことは確かですか? –

+0

私は気づいていません。 JSライブラリはサブフォルダにありますが、Angular.js機能を実行しているインデックスページには何もありません – SDH

+0

縮小された(ビルドされた)JSファイルに含まれる角度コードベースは他の場所で参照されていますか?多くの人が標準のangularjsファイルを開発中に取り込み、開発が完了した後でそれをビルドプロセスに追加して、それを縮小します。 – Joe

答えて

0

私はそれを理解しました。 index.htmlファイルはRequire.JSを呼び出していました。これにより、スクリプトをホームページに非同期で読み込むことができますが、依存関係を追跡する際に問題が発生します。 JavaScriptフレームワークは基本的に、JavaScriptファイルのフォルダ全体を非同期にロードすることを可能にします。

関連する問題