Picasaweb - show filename with preview
By Ajnasz
—
Last update Jun 25, 2008
—
Installed
85 times.
// ==UserScript==
// @name Picasaweb - show filename with preview
// @namespace http://ajnasz.hu/picasaweb-show-filename-with-preview
// @description show the name of selected file next to the input field
// @include http://picasaweb.google.com/lh/webUpload*
// ==/UserScript==
(function() {
var appendFileName = function(event) {
if(this.parentNode.getElementsByTagName('strong').length > 0) {
this.parentNode.removeChild(this.parentNode.getElementsByTagName('strong')[0])
}
var s = document.createElement('strong');
s.setAttribute('style', 'margin-left: 5px;');
s.setAttribute('name', this.name);
s.appendChild(document.createTextNode(this.value.replace(/.+\/([^\/]+)$/,'$1')));
s.addEventListener('click', GM_doPicasa, false);
this.parentNode.appendChild(s);
event.preventDefault();
};
var showImagePreview = function(input, pos) {
var d = document.getElementById('GM_picasaPreview');
if(!d) {
var d = document.createElement('div');
d.id = 'GM_picasaPreview';
d.setAttribute('style', 'position:absolute;display:none;padding:3px;background-color:#fff;border:5px solid #9FC4FF;');
var img = new Image();
img.id = 'GM_picasaPreviewImage';
img.setAttribute('style', 'width:400px;');
d.appendChild(img);
document.body.appendChild(d);
var d = document.getElementById('GM_picasaPreview');
}
var img = document.getElementById('GM_picasaPreviewImage');
if(img.getAttribute('name') != input.files.item(0).fileName) {
img.src = 'data:' + input.files.item(0).getAsDataURL();
img.setAttribute('name', input.files.item(0).fileName);
}
d.style.top = pos.y + 'px';
d.style.left = pos.x + 'px';
d.style.display = 'block';
d.addEventListener('click', hideImagePreview, false);
}
var hideImagePreview = function() {
var d = document.getElementById('GM_picasaPreview');
d.style.display = 'none';
}
var GM_doPicasa = function(event) {
var pos ={x: event.clientX, y: event.clientY};
var input = document.getElementsByName(this.getAttribute('name'))[0];
showImagePreview(input, pos);
}
var inputs = document.getElementsByTagName('input');
for(var i = 0; i < inputs.length; i++) {
if(inputs[i].type == 'file') {
inputs[i].addEventListener('change', appendFileName, false);
}
}
})();