views:

96

answers:

2

EDIT:

For the sake of simplicity:

I've got a simple UserJS script (FF/Chrome: Greasemonkey, Opera: built-in) that fixes some issues on website I'm using quite often. The problem is that I need to store some data between different requests. My first attempt was LocalStorage but it fail when it came to work with subdomains: www.domain.com and subdomain.domain.com (unfortunately root-domain is subdomain in fact - stupid www) . I need to be able to access some data source that would be available everywhere.

Now I'm stuck - any ideas?

A: 

You can not.

For security reasons the browser only grants access to data stored with localStorage within the same domain. This is due to the fact, that on some systems different subdomains belong to different people / websites.

See for example: http://msdn.microsoft.com/en-us/library/cc197062(VS.85).aspx

Each domain and subdomain has its own separate local storage area. Domains can access the storage areas of subdomains, and subdomains can access the storage areas of parent domains. For example, localStorage['example.com'] is accessible to example.com and any of its subdomains. The subdomain localStorage['www.example.com'] is accessible to example.com, but not to other subdomains, such as mail.example.com.

JochenJung
Uh...does't that quote boil down to 'you should be able to'?
sje397
`and subdomains can access the storage areas of parent domains` that's what I am looking for. But `localStorage['...']` - that's not proper way.
Crozin
I've edited the question.
Crozin
+1  A: 

...Why not use GM_setValue and GM_getValue?

EDIT: I did a little digging. Look what I found!

http://www.opera.com/docs/userjs/specs/#scriptstorage

It claims to work the same as localStorage, but it's scoped per-script, rather than per-website. Should work perfect for your use case.

Pauan
Unfortunately Opera doesn't provide anything like this as far as I know.
Crozin
Then you're almost certainly out of luck. Firefox and Chrome both support ways for user scripts to persist data. Have you tried globalStorage? Does that work in Opera?
Pauan
I just had an idea: use cookies. The downside is, the server will see the cookie data as well, and cookies are a pain to work with.
Pauan
Don't use either globalStorage or cookies. I edited my answer to show the solution for Opera.
Pauan
I'll test that tomorrow, however it seems to be just what I am looking for!
Crozin