diff --git a/src/geo/ui/infowindow-view.js b/src/geo/ui/infowindow-view.js index e05c558..d381e66 100644 --- a/src/geo/ui/infowindow-view.js +++ b/src/geo/ui/infowindow-view.js @@ -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 = $(""); + $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('
Non-valid picture URL
'); }, + + _showInfowindowVideoError: function () { + this.$('.js-infowindow').addClass('is-fail'); + this.$('.js-cover').append('无效的视频地址
'); + }, _stopCoverLoader: function () { this.$('.js-infowindow').removeClass('is-loading');