更新 infowindow-view.js

remotes/origin/master
钟进 4 years ago
parent c6ced2cfe0
commit bb43395e8a

@ -114,6 +114,12 @@ var Infowindow = View.extend({
this._loadCover();
}
if (this._containsVideo()) {
this._loadVideo();
}
this._setupClasses();
this._renderScroll();
this._renderShadows();
@ -165,6 +171,8 @@ var Infowindow = View.extend({
var hasContent = this._getContent().length;
var hasTitle = this.$('.CDB-infowindow-title').length;
var numberOfFields = this.model.get('content') && this.model.get('content').fields.length;
var hasH5url = this.$('.js-h5url').length;
if (hasCover) {
$infowindow
@ -296,6 +304,12 @@ var Infowindow = View.extend({
return !!this.$('.js-infowindow').attr('data-cover');
},
//检测视频
_containsVideo: function () {
return !!this.$('.js-infowindow').attr('data-video');
},
_containsTemplateCover: function () {
return this.$('.js-cover img').length > 0;
},
@ -366,6 +380,21 @@ var Infowindow = View.extend({
this._loadCoverFromUrl(url);
},
_loadVideoFromUrl: function (url) {
var $cover = this.$('.js-cover');
this._startCoverLoader();
var $img = $("<video class='CDB-infowindow-media-item' />");
$cover.append($img);
$img
.load(this._onLoadImageSuccess)
.error(this._onLoadImageError)
.attr('src', url);
},
_loadCoverFromUrl: function (url) {
var $cover = this.$('.js-cover');
@ -426,6 +455,25 @@ var Infowindow = View.extend({
return styles;
},
_loadVideofunction () {
this._renderCoverLoader();
this._startCoverLoader();
var url = this._getCoverURL();
if (this._isLoadingFields()) {
return;
}
if (!this._isValidURL(url)) {
this._stopCoverLoader();
this._showInfowindowVideoError();
return;
}
this._loadVideoFromUrl(url);
}
_loadCover: function () {
this._renderCoverLoader();
this._startCoverLoader();
@ -476,6 +524,11 @@ var Infowindow = View.extend({
this.$('.js-cover').append('<p class="CDB-infowindow-fail">Non-valid picture URL</p>');
},
_showInfowindowVideoError: function () {
this.$('.js-infowindow').addClass('is-fail');
this.$('.js-cover').append('<p class="CDB-infowindow-fail">无效的视频地址</p>');
},
_stopCoverLoader: function () {
this.$('.js-infowindow').removeClass('is-loading');
this.$('.js-loader').removeClass('is-visible');

Loading…
Cancel
Save