old-moya.component.ts 1.8 KB

import {map} from 'rxjs/operators';
import {Component, OnInit, ViewChild, ElementRef, ApplicationRef, ChangeDetectorRef} from '@angular/core';
import {Location, LocationStrategy, HashLocationStrategy, PathLocationStrategy} from '@angular/common';
import {NavigationExtras, ActivatedRoute, Router} from '@angular/router';
import {angularCoreEnv} from '@angular/core/src/render3/jit/environment';

@Component({
  selector: 'moya-old',
  providers: [Location, {provide: LocationStrategy, useClass: PathLocationStrategy}],
  templateUrl: './old-moya.component.html',
  styleUrls: ['./old-moya.component.scss']
})
export class OldMoyaComponent implements OnInit {


  frameUrl: String = '/MoyaWeb/';



  @ViewChild('iframe') iframe: any;
  height = '700px';



  constructor(private location: Location, private route: ActivatedRoute, private changeDetectionRef: ChangeDetectorRef) {

    route.queryParamMap.pipe(map(a => a.get('p'))).subscribe(x => {
      if (x) {
        this.frameUrl = '/MoyaWeb/' + x.replace('::', '?');
      }
    });
  }


  ngOnInit() { }

  changeUrl() {
    const tmpFrameUrl = this.iframe.nativeElement.contentWindow.location.href.split('/MoyaWeb/', 2);

    if (tmpFrameUrl.length > 1) {
      this.location.replaceState(this.location.path(false).split('?', 1)[0] + '?p=' + tmpFrameUrl[1].replace('?', '::') );
    }

    this.iframe.nativeElement.contentWindow.onscroll = (() => {this.fixHeight(this); });

    this.fixHeight(this);
  }

  fixHeight(self) {
    console.log(self.iframe.nativeElement.contentWindow.document.body.scrollHeight);

    if (self.height !== (self.iframe.nativeElement.contentWindow.document.body.scrollHeight + 50) + 'px') {
      self.height = (self.iframe.nativeElement.contentWindow.document.body.scrollHeight + 50) + 'px';
      this.changeDetectionRef.detectChanges();
    }


  }

}