Работает жесткая привязка в видео iframe sr c к видео Kaltura. Но привязка к переменной не работает в IE - PullRequest
0 голосов
/ 08 апреля 2020

У меня есть сайт SharePoint, который загружает angularjs на него. На одном из моих сайтов я пытаюсь показать iframe со встроенным видео от Kaltura. Ниже приведены фрагменты моего кода.

ПРИМЕЧАНИЕ. Приведенное ниже видео НЕ является реальным видео из соображений конфиденциальности.

JavaScript file:

var embedVideoLink = 'https://mediaspace.company.com/embed/secure/iframe/entryId/0_dfnoklj0/uiConfId/12345678'; 
$('<iframe>')
    .attr('id', 'cf_iframe_video')
    .attr('src', embedVideoLink)
    .attr('frameborder', 0)
    .attr('allow', 'autoplay *; fullscreen *; encrypted-media *')
    .attr('allowfullscreen', 'allowfullscreen')
    .attr('width', '100%')
    .attr('height', '350px')
    .appendTo('#cf_iframe_video_container');

HTML Файл:

<div id="cf_iframe_video_container" class="row embed-responsive embed-responsive-16by9">

Приведенный выше код прекрасно работает в Chrome и Edge, но НЕ в IE. Я продолжаю видеть «Ошибка kWdiget никогда не готова» на IE.

Чтобы заставить его работать в IE11, я связываю sr c с жестко закодированным значением следующим образом:

.attr('src', 'https://mediaspace.company.com/embed/secure/iframe/entryId/0_dfnoklj0/uiConfId/12345678')

Но я не могу этого сделать, потому что ссылка для встраивания хранится где-то еще, и пользователи могут ее заменить. Я что-то здесь упускаю? Что вы можете посоветовать мне сделать, чтобы я мог работать с IE11?

1 Ответ

0 голосов
/ 08 апреля 2020

Я реорганизовал свой код. Вместо этого я взял весь код embedCode из пользовательского ввода. Пример ожидаемого ввода:

<iframe src="https://mediaspace.company.com/embed/secure/iframe/entryId/0_hx1rzwia/uiConfId/12345678" frameborder="0" class="kmsembed" width="100%" height="350px" allow="autoplay *; fullscreen *; encrypted-media *" allowfullscreen="allowfullscreen"></iframe>

Затем мой код js выглядит следующим образом:

var embedCode = curItem.checklist; //Taken from User Input in a SharePoint List
embedCode = embedCode.replace(/&gt;/g, ">").replace(/&lt;/g, "<").replace(/&quot;/g, '\\"').replace(/&#58;/g, ':').replace(/\\/g,'');
var embeddedIframe = '';
embeddedIframe = common.decodeHTML(embedCode);
$scope.embeddedVideo = $sce.trustAsHtml(embeddedIframe);

Наконец, файл HTML выглядит следующим образом:

<div id="cf_iframe_video_container" class="row embed-responsive embed-responsive-16by9" ng-bind-html="embeddedVideo">

Теперь работает как положено.

...