更新 infowindow-view.js
This commit is contained in:
@@ -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
|
||||
@@ -295,6 +303,12 @@ var Infowindow = View.extend({
|
||||
_containsCover: function () {
|
||||
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;
|
||||
@@ -365,6 +379,21 @@ var Infowindow = View.extend({
|
||||
this.$('.js-cover img').remove();
|
||||
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');
|
||||
@@ -425,6 +454,25 @@ var Infowindow = View.extend({
|
||||
|
||||
return styles;
|
||||
},
|
||||
|
||||
|
||||
_loadVideo:function () {
|
||||
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();
|
||||
@@ -475,6 +523,11 @@ var Infowindow = View.extend({
|
||||
this.$('.js-infowindow').addClass('is-fail');
|
||||
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');
|
||||
|
||||
Reference in New Issue
Block a user