diff --git a/js/plugins.js b/js/plugins.js
index 3bff6ab..f659012 100644
--- a/js/plugins.js
+++ b/js/plugins.js
@@ -285,13 +285,16 @@ plugins.factory('userPlugins', function() {
// TODO strip an existing dl=0 parameter
url = url + "?dl=1";
}
- var element = angular.element('')
- .attr('target', '_blank')
- .attr('href', url)
- .append(angular.element('
')
- .addClass('embed')
- .attr('src', url));
- return element.prop('outerHTML');
+ return function() {
+ var element = this.getElement();
+ var imgElem = angular.element('')
+ .attr('target', '_blank')
+ .attr('href', url)
+ .append(angular.element('
')
+ .addClass('embed')
+ .attr('src', url));
+ element.innerHTML = imgElem.prop('outerHTML');
+ };
}
});
@@ -300,12 +303,15 @@ plugins.factory('userPlugins', function() {
*/
var videoPlugin = new UrlPlugin('video', function(url) {
if (url.match(/\.(mp4|webm|ogv)\b/i)) {
- var element = angular.element('')
- .addClass('embed')
- .attr('width', '560')
- .append(angular.element('')
- .attr('src', url));
- return element.prop('outerHTML');
+ return function() {
+ var element = this.getElement();
+ var velement = angular.element('')
+ .addClass('embed')
+ .attr('width', '560')
+ .append(angular.element('')
+ .attr('src', url));
+ element.innerHTML = velement.prop('outerHTML');
+ };
}
});
@@ -375,14 +381,17 @@ plugins.factory('userPlugins', function() {
var regexp = /^https?:\/\/(?:www\.)?yr\.no\/(place|stad|sted|sadji|paikka)\/(([^\s.;,(){}<>\/]+\/){3,})/;
var match = url.match(regexp);
if (match) {
- var language = match[1];
- var location = match[2];
- var city = match[match.length - 1].slice(0, -1);
- url = "http://www.yr.no/" + language + "/" + location + "avansert_meteogram.png";
- var element = angular.element('
')
- .attr('src', url)
- .attr('alt', 'Meteogram for ' + city);
- return element.prop('outerHTML');
+ return function() {
+ var element = this.getElement();
+ var language = match[1];
+ var location = match[2];
+ var city = match[match.length - 1].slice(0, -1);
+ url = "http://www.yr.no/" + language + "/" + location + "avansert_meteogram.png";
+ var ielement = angular.element('
')
+ .attr('src', url)
+ .attr('alt', 'Meteogram for ' + city);
+ element.innerHTML = ielement.prop('outerHTML');
+ };
}
});
@@ -418,13 +427,16 @@ plugins.factory('userPlugins', function() {
var id = url.match(regex);
if (id) {
var src = "https://media.giphy.com/media/" + id[1] + "/giphy.gif";
- var element = angular.element('')
- .attr('target', '_blank')
- .attr('href', url)
- .append(angular.element('
')
- .addClass('embed')
- .attr('src', src));
- return element.prop('outerHTML');
+ return function() {
+ var element = this.getElement();
+ var gelement = angular.element('')
+ .attr('target', '_blank')
+ .attr('href', url)
+ .append(angular.element('
')
+ .addClass('embed')
+ .attr('src', src));
+ element.innerHTML = gelement.prop('outerHTML');
+ };
}
});