芝麻web文件管理V1.00
编辑当前文件:/home/mgatv524/public_html/midiatech/modules/xibo-image-render.js
/** * Xibo - Digital Signage - http://www.xibo.org.uk * Copyright (C) 2009-2014 Daniel Garner * * This file is part of Xibo. * * Xibo is free software: you can redistribute it and/or modify * it under the terms of the GNU Affero General Public License as published by * the Free Software Foundation, either version 3 of the License, or * any later version. * * Xibo is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * GNU Affero General Public License for more details. * * You should have received a copy of the GNU Affero General Public License * along with Xibo. If not, see
. */ jQuery.fn.extend({ xiboImageRender: function(options) { // Default options var defaults = { reloadTime: 5000, maxTries: -1 //-1: Infinite # times }; // Extend options options = $.extend({}, defaults, options); var $self = $(this); // Run all the selected elements individually if ($self.length > 1) { $self.each(function (i, el) { $(el).xiboImageRender(options); }); return $self; } // Handle the image error by replacing the original image with a transparent pixel and try to reload the original source again var handleImageError = function(){ // Replace image with a single transparent pixel $self.unbind("error").attr("src", "data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAEAAAABCAQAAAC1HAwCAAAAC0lEQVR4nGNiYAAAAAkAAxkR2eQAAAAASUVORK5CYII="); var reloadTimes = $self.data("reload-times"); // Loop an infinite number of times ( maxTries == -1 ) or until the loop reach options.maxTries times if (reloadTimes < options.maxTries || options.maxTries == -1) { // Create a timeout using the options reload time setTimeout(function() { // Try to change source to the original $self.attr("src", $self.data("original-src")).bind("error", handleImageError); // Increase the control var and set it to the element reloadTimes++; $self.data("reload-times", reloadTimes); }, options.reloadTime); } }; // Original image source $self.data("original-src", $self.attr("src")); // Initialise reload times var $self.data("reload-times", 0); // Bind handle image funtion to a error event if( $self.data("original-src") != undefined ) { $self.bind("error", handleImageError); } return $self; } });