Po raz kolejny : Obrazek tła (JS)

w dziale Dostosowywanie Opery do własnych potrzeb
Łukash napisał(a):

Witam.
Moja konfiguracja Opery wchodzi już ,zdaję mi się ,w fazę Final cool . Brakuje mi jeszcze jednej opcji ,mianowicie Pokaż/Zapisz obrazek tła. Jest parę wątków na forum na ten temat ale w tych co widziałem ,ani razu sprawa nie została załatwiona do końca.
Znalazłem taki skrypt http://files.myopera.com/shoust/blog/bgimage.js

(function(){
document.addEventListener('DOMContentLoaded',function(){
var bgimage=document.body.currentStyle.backgroundImage?document.body.currentStyle.backgroundImage:window.getComputedStyle(document.body).backgroundImage;
if(bgimage){var ty=/url\(\"([^\"]*)/;
ty.exec(bgimage);
document.body.setAtdocument.bodyibute('background',RegExp.$1);}
else{continue;}
},false);
})()

/*(function(){
document.addEventListener('DOMContentLoaded',function(){
var yu=document.getElementsByTagName('*');
for(var i=0;i<yu.length,tr=yu[i];i++){var bgimage=tr.currentStyle.backgroundImage?tr.currentStyle.backgroundImage:window.getComputedStyle(tr).backgroundImage;
if(bgimage){var ty=/url\(\"([^\"]*)/;
ty.exec(bgimage);
tr.setAttribute('background',RegExp.$1);}
else{continue;}
}},false);

})() */

I sprawa z nim wygląda tak ,że gdy usuniemy górną sekcję (skrypt z nią nie działa) i komentarz z dolnej sekcji ,to prawie że osiągamy sukces. Pojawia się ,dla mnie tajemnicza opcja w menu kontekstowym która ma wszystkie potrzebne funkcję i one działają ,wygląda to tak:

Wszystko by było ok gdyby ten skrypt nie "psuł" wyglądu co poniektórych stron np powoduje takie coś :



Może ktoś ma pojęcie jak okiełznać ten skrypt ,najlepiej bez opcji wstawiania stron w // @exclude pomiędzy // ==UserScript== ,bo tak się da.

nowotny napisał(a):

Ten zakomentowany fragment działa w ten sposób: we wszystkich elementach na stronie wyszukuje styl ustawiający tło graficzne elementu po czym kopiuje ścieżkę tego tła i ustawia atrybut background elementu z tą ścieżką... Niestety, nie można określić żadnych opcji jak ten atrybut ma się zachowywać (np. że ma się nie powtarzać) co można zrobić w CSS... Dlatego masz taki efekt jak masz...

Jaki cel konkretnie chcesz uzyskać...? Tylko możliwość pobierania tła całej strony czy poszczególnych elementów też...?

Łukash napisał(a):

Więc chciałbym uzyskać w sumie dwie funkcję ,Otwórz obrazek i Zapisz obrazek (a najfajniej by było gdyby opcja była dostępna z menu kontekstowego Tło strony smile )

Medium napisał(a):

Originally posted by Łukash:

Więc chciałbym uzyskać w sumie dwie funkcję ,Otwórz obrazek i Zapisz obrazek


W sekcji [Document Popup Menu] są zawarte wpisy, które ujawniają się w przypadku wykrycia:
1. ramki, 2. obrazku tła
Include, Internal Frame
Include, Internal Document Background
Mam wrazenie, że nie każdy obrazek tła jest wykrywany, ale jeśli zostaje wykryty, ten drugi wpis wywołuje:
[Document Background Menu]
Item, M_OPEN_IMAGE=Open background image
Item, M_MENU_RELOAD_IMAGE=Show background image
Item, MI_IDM_BACKGROUND_COPY_ADDRESS=Copy background image address
--------------------1
Item, MI_IDM_BACKGROUND_SAVE=Save background image
Item, M_DOCUMENT_BACKGROUND_MENU_COPY_TO_CLIPBOARD=Copy background image
Platform Windows-Mac, Item, M_DOCUMENT_BACKGROUND_MENU_USE_ON_DESKTOP,=Use background image as desktop background
--------------------2
GhostItem, M_INSPECT_ELEMENT=Inspect element
Item, MI_IDM_BACKGROUND_IMAGE_PROPERTIES=Show background image properties

Pokazujesz to menu kontekstowe na pierwszym obrazku, bez działania skryptu.
Jest tu i otwórz i zapisz. Zatem o co chodzi?

Łukash napisał(a):

@Medium o to chodzi ,że :

I sprawa z nim wygląda tak ,że gdy usuniemy górną sekcję (skrypt z nią nie działa) i komentarz z dolnej sekcji ,to prawie że osiągamy sukces. Pojawia się ,dla mnie tajemnicza opcja w menu kontekstowym która ma wszystkie potrzebne funkcję i one działają ,wygląda to tak:


Menu pojawia się przy działaniu skryptu smile

Medium napisał(a):

Originally posted by Łukash:

Menu pojawia się przy działaniu skryptu

Zdecydowanie nie tylko! A tam, gdzie się nie pojawi, a warto sobie skorzystać, masz przecież Dragonfly!
Nie udało Ci się spotkać strony, gdzie bez skryptu masz odpowiednie menu?


Łukash napisał(a):

@Medium no jest świetne Dragonfly ,ale to nie to samo po prostu ,taki automacik byłby świetniejszy smile No i szczerze pisząc jeszcze nie spotkałem się ze stroną gdzie Opera wyłapuje tło sad

Medium napisał(a):

Originally posted by Łukash:

nie spotkałem się ze stroną gdzie Opera wyłapuje tło

Ano faktycznie, coś jakby się spsuło z wykrywaniem tła. W Opezre 8 i 9 nie było z tym żadnego problemu. Potem przestałam się tym interesować.
Jeśli jesteś kolekcjonerem, to chcesz znaleźć drzwi do lasu, przykład: http://www.grsites.com/archive/textures/

Łukash napisał(a):

Czemu drzwi do lasu ? Trzeba rozumieć potrzeby innych. A i fajnie by było jakby pojawiła się jakaś pewna możliwość .Sporo przyszłych byłych userów Firefoxa=przyszłych Opery bigsmile może szukać tej opcji. Prosił bym jednak o pomoc w rozwiązaniu sprawy ,a nie o opinię na temat moich preferencji p

nowotny napisał(a):

Originally posted by Łukash:

Więc chciałbym uzyskać w sumie dwie funkcję ,Otwórz obrazek i Zapisz obrazek (a najfajniej by było gdyby opcja była dostępna z menu kontekstowego Tło strony


Z tym że to w żaden sposób nie odpowiada na moje pytanie... No to jeszcze raz: chcesz obrazki tła dla wszystkich elementów czy tylko dla body...?

Łukash napisał(a):

Tylko dla body.

nowotny napisał(a):

Tu masz poprawioną drugą funkcję tak aby działała tylko na body:

(function(){
	document.addEventListener('DOMContentLoaded',function(){
		var bgimage=document.body.currentStyle.backgroundImage ? document.body.currentStyle.backgroundImage : window.getComputedStyle(document.body).backgroundImage;
		if(bgimage){
			var ty=/url\(\"([^\"]*)/;
			ty.exec(bgimage);
			document.body.setAttribute('background',RegExp.$1);
		}
	},false);
})()

Łukash napisał(a):

@nowotny Dziękuję Ci serdecznie happy Skrypcik nie powoduje z tego co widzę żadnych problemów ,działa jak na leży .
Dla mnie to żaden problem ,ale może Ciebie zainteresuje np na stronce http://demotywatory.pl/ ,pojawia się niepotrzebne( i chyba błędne )menu :

nowotny napisał(a):

Co tutaj jest błędnego bo jakoś nie bardzo widzę... wink

Łukash napisał(a):

Normalnie tego menu nie ma smile A i opcja Opera - otwiera obrazek ,opcja Galeria - nic nie robi smile Nie ma opcji uruchomienia strony w Internet Expolorer.

nowotny napisał(a):

Hmm... adres obrazka tła jest w postaci "http://....jpg"... widać Operka głupieje i daje opcje otwarcia tego obrazka zamiast strony... kiedy adres jest względny takich cyrków nie ma... trudno powiedzieć czy to bug czy feature... raczej bug... :/

Łukash napisał(a):

@Medium to menu jest ,tylko że chyba powinno pojawić się w innych okolicznościach...
czyste menu : Opera Standard ,bez skryptu


Nie na temat ,czy u kogoś na Operze 10.63 również nie da się wpisać w wyszukiwarce google znaków- & oraz znaku- (

Medium napisał(a):

Originally posted by Łukash:

Normalnie tego menu nie ma


Jak nie, jak tak:

[Document Popup Menu]
Item, MI_IDM_Prev_PM,=Back
Item, MI_IDM_Next_PM,=Forward
Item, M_REWIND,=Rewind, 0
Item, M_FAST_FORWARD,=Fast Forward, 0
--------------------1
Item, MI_IDM_Reload_PM,=Reload
Submenu, MI_IDM_AUTORELOAD_TOGGLE_PARENT, Full Reload Menu
--------------------2
Item, M_DOCUMENT_POPUP_MENU_BOOKMARK_PAGE=Add to bookmarks, 1
Item, MI_IDM_POPUP_ADDRESS=Copy document address
Item, MI_IDM_SEND_URL_EMAIL=Send document address in mail
Item, MI_IDM_Print=Print document
--------------------3
GhostItem, M_INSPECT_ELEMENT=Inspect element
Item, MI_IDM_Kilde=View document source
Item, M_DOCUMENT_POPUP_MENU_VALIDATE=Validate frame source
Submenu, M_OPEN_WITH, Open in menu
--------------------5
Include, Internal Frame
Include, Internal Document Background
--------------------7
Item, M_BLOCK_CONTENT=Content block mode on | Content block mode off
Item, M_EDIT_SITE_PREFERENCES=Edit site preferences
--------------------8
Item, MI_IDM_FULLSCREENTOGGLE=Enter fullscreen | Leave fullscreen


Chyba, że coś sam zmieniałeś?
A że zgłasza się program do obrazków, to pewnie zasługa skryptu nowotnego smile

Sama dodałam frazę
Submenu, M_OPEN_WITH, Open in menu
do menu dla obrazków i wygląda to tak:
open_with_w_image_menu.png

Medium napisał(a):

Originally posted by Łukash:

@Medium to menu jest ,tylko że chyba powinno pojawić się w innych okolicznościach...
czyste menu : Opera Standard ,bez skryptu

Z tym skryptem już Ci się nie pojawi.
I patrz na moją edycję posta ↑

Łukash napisał(a):

Na razie zauważyłem to tylko na demotach ,i http://www.poomoc.pl/ .Na reszcie www jest normalnie.

Originally posted by Medium":

Sama dodałam frazę
Submenu, M_OPEN_WITH, Open in menu
do menu dla obrazków i wygląda to tak:


Czyli dla [Image Link Popup Menu] , [Turbo Image Link Popup Menu] , [Image Popup Menu] ? .Znowu amator się we mnie odzywa whistle
A można wiedzieć jak wygląda ta sprawa ?

Nie na temat ,czy u kogoś na Operze 10.63 również nie da się wpisać w wyszukiwarce google znaków- & oraz znaku- (

Medium napisał(a):

Originally posted by Łukash:

Czyli dla [Image Link Popup Menu] , [Turbo Image Link Popup Menu] , [Image Popup Menu] ? .Znowu amator się we mnie odzywa

Tak wink
Właśnie w Operze 10.63, kiedy nie mogłam opanować polecenia otwarcia bezpośrednio w IrfanView...

Originally posted by Łukash:

Nie na temat ,czy u kogoś na Operze 10.63 również nie da się wpisać w wyszukiwarce google znaków- & oraz znaku- (

Nie ma problemów, przynajmniej w takim ciągu:
http://www.google.com/search?client=opera&rls=pl&q=google+pl+%26+en+(polski)&sourceid=opera&ie=utf-8&oe=utf-8

Originally posted by Łukash:

Skrypcik nie powoduje z tego co widzę żadnych problemów ,działa jak na leży .

A jednak powoduje: miesza dokument z obrazkiem tła dokumentu, co sam wyżej pokazałeś.

Łukash napisał(a):

Originally posted by "Medium":

Tak
Właśnie w Operze 10.63, kiedy nie mogłam opanować polecenia otwarcia bezpośrednio w IrfanView...


No to jeszcze pokombinuje smile

Nie ma problemów, przynajmniej w takim ciągu:


U mnie w ogóle zero reakcji...Dziwne.

A jednak powoduje: miesza dokument z obrazkiem tła dokumentu, co sam wyżej pokazałeś.


No niby tak .Jednak nie zakłóca działania stron ,co pierwotna forma robiła ,tam gdzie w body jest obraztła.jpg ,jest wychwytywany i wszystko gra.Tylko z tym menu coś jest nie tak (Galeria + Opera ) ale to w sumie pikuś.

Medium napisał(a):

Originally posted by Łukash:

No niby tak .Jednak nie zakłóca działania stron

Dokładnie.
Ciekawi mnie, jaki skrypt należałoby zastosować, by Opera wykrywała obrazek na mojej stronie My Opera? Bo ten nie wykrywa.


Łukash napisał(a):

Hehe ,u mnie wykrywa i otwiera smile
http://wstaw.org/w/hMI/
Natomiast u mnie nie wykrywa
http://wstaw.org/w/hMK/
lol
Trzeba się wylogować i wykrywa lol

Medium napisał(a):

Originally posted by Łukash:


Trzeba się wylogować i wykrywa lol

Qrczę, masz rację, ale nie do końca: sprawdź preferencje dla witryny.
Ja miałam na katalog skryptów dla Opery 10, a działałam Operą 11 i tylko dla 11 zapisałam skrypt nowotnego.
Wcale nie trzeba się wylogowywać!


Łukash napisał(a):

Ja mam tylko jedną Opere - 10.63 i jeden folder skryptów faint

Medium napisał(a):

Originally posted by Łukash:

Ja mam tylko jedną Opere

A ja cztery plus wersja testowa (jak jest) bigsmile

Łukash napisał(a):

No to ostro bigsmile Ja ogarniam w miarę jedną ,z pięcioma nie dał bym sobie rady lol

Medium napisał(a):

Originally posted by Łukash:

Ja ogarniam w miarę jedną ,z pięcioma nie dał bym sobie rady

Dlaczego?
Dla każdej osobny folder, skrypty także osobno dla każdej, ale już zakładki, kontakty, filtr reklam wspólne.


Łukash napisał(a):

Spoko że się tak da .Opera rządzi ,nie wiem jak tyle czasu mogłem używać Firefox'a.

nowotny napisał(a):

Originally posted by Medium:

A że zgłasza się program do obrazków, to pewnie zasługa skryptu nowotnego


Już pisałem dlaczego tak jest... p bug i tyle... smile

W ogóle jakieś cuda są z tym atrybutem "background"... jak się ustawi jakąś bezsensowną wartość to menu "Open with" jest nieaktywne... :/

Medium napisał(a):

Originally posted by nowotny:

Originally posted by Medium:

A że zgłasza się program do obrazków, to pewnie zasługa skryptu nowotnego


Już pisałem dlaczego tak jest... p bug i tyle... smile

Zgłosiłeś?

Originally posted by nowotny:

W ogóle jakieś cuda są z tym atrybutem "background"... jak się ustawi jakąś bezsensowną wartość to menu "Open with" jest nieaktywne... :/

Nie masz we mnie partnera do tych rozważań sad

nowotny napisał(a):

Originally posted by Medium:

Zgłosiłeś?


Oczywiście...

DSK-324522

BTW, skrypt ździebko poprawiony:
// ==UserScript==
// @include      *
// ==/UserScript==
(function(){
	document.addEventListener('DOMContentLoaded',function(){
		var bgimage=document.body.currentStyle.backgroundImage ? document.body.currentStyle.backgroundImage : window.getComputedStyle(document.body).backgroundImage;
		if(bgimage){
			var ty=/url\(\"([^\"]*)/;
			var ss = ty.exec(bgimage);
			if(ss) document.body.setAttribute('background',RegExp.$1);
		}
	},false);
})()

Medium napisał(a):

Originally posted by nowotny:

BTW, skrypt ździebko poprawiony:


I dobrze, bo dla poprzedniego był taki efekt:
N_skutek_skryptu_background.png
a bez skryptów:
N_bez_skryptu_background.png

Po edycji skryptu problem już nie występuje.