Opera 9.5x a Picasaweb – part 2

Čvc
11
2008

Scroll down for English.

Před časem jsem tu zveřejňoval scripty, které zprovozňovaly v Opeře 9.5 Picasaweb. Jejich součástí byla i možnost provozovat nejavascriptovou verzi, ale zato si v ní automaticky nechat zvětšovat fotografie na jejich 100 % velikost.

Finální Opera 9.5 obsahuje opravu, která způsobuje, že Picasaweb funguje i bez scriptů tak, jak má – což znamená, že se automaticky otvírá javascriptová verze galerie a nikde neobtěžuje žádná hláška o nekompatibilním browseru. To je pro řadového uživatele jistě příjemné, ovšem má to jeden háček – protože už není Opera detekována jako nekompatibilní browser, nelze se dostat do oné „obyčejné“ verze galerie, ve které fungovalo zmíněné automatické zvětšování fotografií. V javascriptové verzi picasawebu je zobrazování fotografií v plné velikosti řešené velice nešikovně, takže mi tahle možnost poměrně hodně chyběla.
Řešení nicméně existuje. Není sice zrovna elegantní, ale zato účinné. V podstatě jde o to Operu „rozbít“, aby přestala fungovat nová oprava. Toho lze docílit velice snadno. Stačí si najít soubor browser.js, který se obvykle nachází v kořenovém adresáři aktuálního profilu. V něm je třeba najít následující sekci:

} else if(hostname.indexOf('picasaweb.google')!=-1){ // 304172, Picasaweb browser sniffing removes functionality Opera has no problems with, for example slideshow
var oldua=navigator.userAgent;
navigator.userAgent = {
toString: function(){return oldua},
toLowerCase:function(){ return oldua.replace( /Opera./, 'MSIE ' ).toLowerCase(); },
toUpperCase:function(){ return oldua.toUpperCase(); },
indexOf: function(s){ return oldua.indexOf(s); }
}
if(self==top)postError.call(opera, 'Opera has modified the JavaScript on '+hostname+' (Picasaweb browser sniffing removes functionality Opera has no problems with, for example slideshow). See browser.js for details');

a v ní změnit řádek

toLowerCase:function(){ return oldua.replace( /Opera./, 'MSIE ' ).toLowerCase(); },

na (například, asi to není jediné možné řešení)

toLowerCase:function(){ return oldua.replace( /Opera./, 'Opera ' ).toLowerCase(); },

Výše uvedený řádek maskuje na Picasawebu Operu automaticky jako IE a uvedenou „opravou“ se toto maskování zruší. Opera posléze na Picasawebu opět začne zobrazovat hlášku o nekompatibilním browseru a zobrazovat základní verzi galerií. Pokud chcete dočasně využívat javascriptovou, stačí nastavit maskování jako Firefox nebo IE ručně a znovu vstoupit do dané galerie.
Znovu upozorňuji, že celá výše uvedená operace je třeba jen tehdy, pokud chcete používat script na automatické zvětšování fotografií. Pokud ne a jste s javascriptovou galerií spokojeni, není třeba na výchozí instalaci Opery cokoliv měnit. Současně je velice pravděpodobné, že tuto operaci bude třeba udělat po instalaci každé aktualizace Opery (myslím, že zmíněný soubor browser.js je průběžně aktualizován, tudíž o jeho úpravy přijdete).

—————————————————–

Some time ago I’ve posted user scripts that made using Picasaweb possible in Opera 9.5. There was also a possibility to use non-javascript version of the gallery and let one of the scripts show you the posted images in full size automatically.
Opera 9.5 final contains a fix, thanks to which Picasaweb works without any user scripts just like it should – which means that you get to use the javascript gallery automatically and there’s no warning about you using an incompatible browser. This is surely quite nice for the average user, but there’s a catch – because Picasaweb no longer sees Opera as incompatible, you can’t get to the „plain“ gallery needed for the „automatic full size“ userscript. In the javascript gallery, viewing images in full size is not very usable, so I’ve missed this userscript „feature“ quite a lot.
There’s a solution, though. It’s not very elegant, but it works just fine. Basically, you have to „break“ Opera, so the new Picasaweb fix doesn’t work. That is very easy to achieve. All you have to do is find the browser.js file, which usually resides in the root folder of your Opera profile. In it, you have to locate the following part:

} else if(hostname.indexOf('picasaweb.google')!=-1){ // 304172, Picasaweb browser sniffing removes functionality Opera has no problems with, for example slideshow
var oldua=navigator.userAgent;
navigator.userAgent = {
toString: function(){return oldua},
toLowerCase:function(){ return oldua.replace( /Opera./, 'MSIE ' ).toLowerCase(); },
toUpperCase:function(){ return oldua.toUpperCase(); },
indexOf: function(s){ return oldua.indexOf(s); }
}
if(self==top)postError.call(opera, 'Opera has modified the JavaScript on '+hostname+' (Picasaweb browser sniffing removes functionality Opera has no problems with, for example slideshow). See browser.js for details');

and change the line

toLowerCase:function(){ return oldua.replace( /Opera./, 'MSIE ' ).toLowerCase(); },

to (for example – it is probably not the only possible solution)

toLowerCase:function(){ return oldua.replace( /Opera./, 'Opera ' ).toLowerCase(); },

This line masks Opera automatically as IE while on Picasaweb, and once you change it like that, this automatic masking stops working. This leads to Opera once again showing the „incompatible browser“ warning and showing only the basic HTML based gallery, not the „enhanced“ javascript one, which in turn makes the „auto full size“ script work again as before. If you want to use the javascript gallery for a while (i.e. to see geotagging info), all you have to do is set Opera to Mask as Firefox or IE manually and re-enter the gallery.
Again, this is only necesarry if you want to use the „automatic full size“ script. If not and if you like the javascript based gallery best, just ignore all this and use the default Opera install. Quite probably you’ll also have to edit browser.js again each time you update Opera, as I think this file gets updated too, which means you lose the changes.

Buďte první, komu se článek líbí.

Napsal(a) dne 11. 7. 2008 v 19:57
Kategorie: Fotografie,HW, SW a podobná verbež,Návody

1 komentář »

RSS komentářů k tomuto příspěvku. Zpětné URL


Napište komentář

Používá systém WordPress | Styl: Aeros 2.0 z TheBuckmaker.com