Fix unwanted caching in IE8

This commit is contained in:
kondou 2013-09-03 18:34:40 +02:00
parent 4724d60ecd
commit 6d42f51d0c
2 changed files with 20 additions and 7 deletions

View File

@ -15,7 +15,7 @@
* You may use this on any <div></div>
* Here I'm using <div class="avatardiv"></div> as an example.
*
* There are 3 ways to call this:
* There are 4 ways to call this:
*
* 1. $('.avatardiv').avatar('jdoe', 128);
* This will make the div to jdoe's fitting avatar, with the size of 128px.
@ -30,10 +30,14 @@
* This will search the DOM for 'user' data, to use as the username. If there
* is no username available it will default to a placeholder with the value of
* "x". The size will be determined the same way, as the second example did.
*
* 4. $('.avatardiv').avatar('jdoe', 128, true);
* This will behave like the first example, except it will also append random
* hashes to the custom avatar images, to force image reloading in IE8.
*/
(function ($) {
$.fn.avatar = function(user, size) {
$.fn.avatar = function(user, size, ie8fix) {
if (typeof(size) === 'undefined') {
if (this.height() > 0) {
size = this.height();
@ -67,7 +71,11 @@
if (typeof(result) === 'object') {
$div.placeholder(result.user);
} else {
$div.html('<img src="'+url+'">');
if (ie8fix === true) {
$div.html('<img src="'+url+'#'+Math.floor(Math.random()*1000)+'">');
} else {
$div.html('<img src="'+url+'">');
}
}
});
});

View File

@ -50,15 +50,15 @@ function selectAvatar (path) {
}
function updateAvatar () {
$('header .avatardiv').avatar(OC.currentUser, 32);
$('#avatar .avatardiv').avatar(OC.currentUser, 128);
$('#header .avatardiv').avatar(OC.currentUser, 32, true);
$('#displayavatar .avatardiv').avatar(OC.currentUser, 128, true);
}
function showAvatarCropper() {
$cropper = $('#cropper');
$cropperImage = $('#cropper img');
$cropperImage.attr('src', OC.Router.generate('core_avatar_get_tmp'));
$cropperImage.attr('src', OC.Router.generate('core_avatar_get_tmp')+'#'+Math.floor(Math.random()*1000));
// Looks weird, but on('load', ...) doesn't work in IE8
$cropperImage.ready(function(){
@ -77,8 +77,11 @@ function showAvatarCropper() {
}
function sendCropData() {
$cropper = $('#cropper');
$('#displayavatar').show();
$cropper.hide();
$('.jcrop-holder').remove();
$('#cropper img').removeData('Jcrop').removeAttr('style').removeAttr('src');
var cropperdata = $('#cropper').data();
var data = {
@ -220,7 +223,9 @@ $(document).ready(function(){
$('#abortcropperbutton').click(function(){
$('#displayavatar').show();
$cropper.hide();
$('#cropper').hide();
$('.jcrop-holder').remove();
$('#cropper img').removeData('Jcrop').removeAttr('style').removeAttr('src');
});
$('#sendcropperbutton').click(function(){