Веб-часть SPFx не загружается в IE 11 - PullRequest
0 голосов
/ 10 декабря 2018

У меня есть веб-часть SPFx с платформой Knockout.Его разработали для SharePoint на месте (V1.1.0).Развернули все активы в библиотеке SharePoint.Приложение работает нормально в Chrome.Но в IE веб-часть не загружается на странице.Даже у меня нет никаких консольных логов / ошибок.Если я обновлю страницу с открытой консолью разработчика, она будет работать.

Я удалил все журналы консоли в приложении, даже я удалил журналы консоли из JS в комплекте.Тем не менее веб-часть не загружена.

Тогда я подумал, что это может быть проблема с порядком загрузки JS.Поэтому я прокомментировал все операторы импорта кода и пакетов.Но не повезло.

В какой-то статье я обнаружил, что это может быть проблема с главной страницей.Итак, я удалил пользовательский Мастер и вернулся к настройке Мастера.Но проблема остается.

Затем я загрузил страницу с открытой консолью разработчика, обнаружил проблему в консоли:

Объект не поддерживает свойство илиметод 'warn'

и он был сгенерирован из sp-classic-page-assembly_en-us.js .

Также я вижуошибка переполнения стека из sp-classic-page-assembly_en-us.js иногда.

Ниже приведен пример кода файла ViewModel.ts.

import * as ko from 'knockout';
import styles from './Search.module.scss';
import { ISearchWebPartProps } from './SearchWebPart';
import pnp, { SearchResults, Web, SearchResult, SortDirection } from 'sp-pnp-js';
import { QueryBuilder } from './Support/QueryBuilder';
import { SearchParameters } from './Entities/SearchParameters';
import { CommonFunctions } from './Support/CommonFunctions';
import { AppConstants } from './Constants/AppConstants';
import { ListNames } from './Constants/ListNames';
import { DocumentCategory } from './Entities/DocumentCategory';
import { ResultTableProperties } from './Entities/ResultTableProperties';
import { PinnedDocuments } from './Entities/PinnedDocuments';
import { SPComponentLoader } from '@microsoft/sp-loader';
import * as $ from "jquery";
import { Topics } from './Entities/Topics';
import { PinnedLists } from "./Entities/PinnedLists";
import { UserPinnedLists } from "./Entities/UserPinnedLists";
import { ConfigProperties } from "./Entities/ConfigProperties";
import { ConfigKeys } from "./Constants/ConfigKeys";
import 'jqueryui';
require('./es6-promise.auto.min.js');
let Swal: any = require('./sweetalert2.min.js');
let moment: any = require('./MyWIMS-I/js/moment.min.js');

require('./SwalStyles.css');



export interface ISearchBindingContext extends ISearchWebPartProps {
    shouter: KnockoutSubscribable<{}>;
}

export default class SearchViewModel {

    public resultTablePageSize: KnockoutObservable<number> = ko.observable(50);
    public mmsName: KnockoutObservable<string> = ko.observable("");
    public topicsTermID: KnockoutObservable<string> = ko.observable("");
    public startPageNumber: KnockoutObservable<number> = ko.observable(1);
    public lastPageNumber: KnockoutObservable<number> = ko.observable(1);
    public currentPageNumber: KnockoutObservable<number> = ko.observable(1);
    public pinnedDocumentsCount: KnockoutObservable<number> = ko.observable(0);
    public isPrevEnabled: KnockoutObservable<boolean> = ko.observable(false);
    public isNextEnabled: KnockoutObservable<boolean> = ko.observable(false);
    public selectedCategory: KnockoutObservable<string> = ko.observable('');
    public resultTableDocProperties: KnockoutObservableArray<ResultTableProperties> = ko.observableArray([]);
    public rootCategoryDetails: KnockoutObservableArray<DocumentCategory> = ko.observableArray([]);
    public topicsTerms: KnockoutObservableArray<Topics> = ko.observableArray([]);
    public pinnedsectionDetails: KnockoutObservableArray<PinnedLists> = ko.observableArray([]);
    public selectpinListDetails: KnockoutObservableArray<UserPinnedLists> = ko.observableArray([]);
    public associatedLists: KnockoutObservableArray<string> = ko.observableArray([]);
    public docToUnPin: KnockoutObservable<string> = ko.observable('');

    public searchParameters: KnockoutObservable<SearchParameters> = ko.observable(new SearchParameters());
    public openedPinnedList: KnockoutObservable<PinnedLists> = ko.observable(new PinnedLists());
    public isLoading: KnockoutObservable<boolean> = ko.observable(true);
    public isPinnedSectionOpen: KnockoutObservable<boolean> = ko.observable(false);
    public webAbsUrl: string = '';
    public webServRelUrl: string = '';
    public docCategoryDetails: DocumentCategory[] = [];
    private oWeb: Web = undefined;

    constructor(bindings: ISearchBindingContext) {

        this.webAbsUrl = bindings.webAbsUrl;
        this.webServRelUrl = bindings.webServRelUrl;
        this.isLoading(true);
        this.resultTablePageSize(parseInt(bindings.pageSize));
        this.mmsName(bindings.mmsName);
        this.topicsTermID(bindings.topicsTermID);
        this.oWeb = new Web(bindings.webAbsUrl);
        SPComponentLoader.loadScript(this.webAbsUrl + '/_layouts/15/clienttemplates.js', { globalExportsName: 'jQuery' }).then((jQuery: any): void => {
        });

        SPComponentLoader.loadCss(this.webAbsUrl + '/SiteAssets/css/bootstrap.min.css');
        SPComponentLoader.loadCss('https://fonts.googleapis.com/css?family=Poppins:300,400,500,600,700');
        SPComponentLoader.loadScript(this.webAbsUrl + '/SiteAssets/js/jquery-2.2.4.min.js', { globalExportsName: 'jQuery' }).then((jQuery: any): void => {
            SPComponentLoader.loadScript(this.webAbsUrl + '/SiteAssets/js/jquery-ui.min.js', { globalExportsName: 'jQuery' }).then((jQuery: any): void => {
                SPComponentLoader.loadScript(this.webAbsUrl + '/SiteAssets/js/bootstrap.min.js', { globalExportsName: 'jQuery' }).then((): void => {
                    SPComponentLoader.loadScript('https://cdnjs.cloudflare.com/ajax/libs/core-js/2.4.1/core.js', { globalExportsName: 'jQuery' }).then((): void => {
                    });
                });
            });
        });


        this.oWeb.currentUser.get().then((_currentUser: any) => {
            this.currentUserID = _currentUser.Id;
            this.GetUserPinnedLists();
            const sessionKey: string = CommonFunctions.GetQueryStringParameter(AppConstants.CONST_Session_Key);
            const _srchParams: SearchParameters = CommonFunctions.GetSearchParameters(sessionKey);
            this.searchParameters(_srchParams);            
            this.InitiateWIMSSearch();          
        });
    }

    private GetUserPinnedLists(): void {
        this.pinnedListsDetails = [];
        this.oWeb.lists.getByTitle(ListNames.LIST_User_Specific_Pinned_Lists).items.filter("UserNameId eq " + this.currentUserID).orderBy("PinnedListOrder", true).get().then(_pinnedLists => {
            if (_pinnedLists && _pinnedLists.length > 0) {
                for (let i = 0; i < _pinnedLists.length; i++) {
                    this.pinnedListsDetails.push({ ListName: _pinnedLists[i].Title, ListID: _pinnedLists[i].ID, Documents: [], IsExpanded: false, IsSeeMoreVisible: true });
                }
            }
            this.pinnedListsDetails.push({ ListName: AppConstants.CONST_DEFAULT_PinnedList, ListID: 1, Documents: [], IsExpanded: false, IsSeeMoreVisible: true });
        }).catch(e => { this.LogException("GetUserPinnedLists", e); });
    }

    private InitiateWIMSSearch(): void {
        this.GetTopicsTerms();
        this.SearchDocuments(1);        
    }
}

Любые предложения будут полезны.Спасибо.

...