Javascript-форум (https://javascript.ru/forum/)
-   Общие вопросы Javascript (https://javascript.ru/forum/misc/)
-   -   localstorage, web sql? (https://javascript.ru/forum/misc/42265-localstorage-web-sql.html)

natureproj 19.10.2013 17:20

localstorage, web sql?
 
Доброго времени суток, стоит такая задача: на одном сайте пользователь получает данные (данные записываются) на другом сайте они должны открыться.
Для тех, кто знаком с разработкой расширений для chrome:
Вообще пример привел с сайтами, а делаю я расширение для хрома. Нужно вывести данные на странице popup.html, которая связана с popup.js

Пробую localsorage : Данные получаю только на том сайте, на котором и занес в хранение.
Можно куками, но с ними много проблем возникает обычно. (не подходит!)

Вопрос: какие технологии мне помогут? Может быть Web SQL ? Есть ли смысл его использовать?

BETEPAH 19.10.2013 18:02

Когда весь текст выделен болдом или италиком, он гораздо хуже воспринимается.
С куками будет аналогично localstorage, т.е. не получится.

danik.js 19.10.2013 18:05

Цитата:

Сообщение от natureproj
Вообще пример привел с сайтами, а делаю я расширение для хрома

Тогда пример с сайтами не в тему вовсе. При создании приложений используютя совершенно другие средства. Разве страницы приложения не могут обращаться например к background-скрипту, общаясь через сообщения?

natureproj 19.10.2013 18:13

Цитата:

Сообщение от danik.js (Сообщение 277231)
Тогда пример с сайтами не в тему вовсе. При создании приложений используютя совершенно другие средства. Разве страницы приложения не могут обращаться например к background-скрипту, общаясь через сообщения?

Возможно и могут, но мне нужно где-то хранить данные.
Я сам не вкурсе могут или нет, приведу пример открытия страницы отправителя(1 ) в manifest.json:
"content_scripts": [
{
"matches": [ "*://*/*" ],
"js": [ "background.js" ]
}
],
Как я понял, на каждой открытой странице вызывается этот скрипт.

ну а страница popup.html (2) открывается при нажатии на иконку расширения сверху справа хрома.
Страница (2) вызывается только после нажатия на иконку. Данные уже должны где-то существовать и при запуске скрипта они обрабатываются в popup.js и, соответственно, выводятся.
При этом, если пользователь закроет браузер, вновь откроет - данные должны существовать.

natureproj 19.10.2013 18:13

Цитата:

Сообщение от BETEPAH (Сообщение 277229)
С куками будет аналогично localstorage, т.е. не получится.

Да, точно! Куки тоже не прокатят.

danik.js 19.10.2013 18:31

"background": {
    "scripts": ["background.js"]
  },


В этом файле сохраняй все что нужно - оно будет храниться вечно и ты с любой вкладки можешь обратиться к этому скрипту когда угодно.

natureproj 19.10.2013 19:10

Как сохранять? Как мне из файла выполнения скрипта передать данные на этот скрипт?

natureproj 19.10.2013 19:12

И мне нужны данные не на вкладке, а на popup.html

natureproj 19.10.2013 19:54

Web SQL мне подойдёт?

danik.js 19.10.2013 20:05

Цитата:

Сообщение от danik.js
общаясь через сообщения

Цитата:

Сообщение от danik.js
через сообщения

Цитата:

Сообщение от danik.js
сообщения

С О О Б Щ Е Н И Я! Понятно?

natureproj 19.10.2013 20:20

1)я нашел postmessage . Вторым параметром указывается домен. Что указывать в моём случае с расширением?
2) Я хочу узнать про web sql . Если это можно использовать, то будет удобнее всего!

danik.js 19.10.2013 20:27

Цитата:

Сообщение от natureproj
я нашел postmessage

Ты это в документации по расширениям хрома нашел???
Там вобще-то другие функции используются. Вроде onMessage.addListener()
А что ты будешь для хранения юзать - не принципиально. Важно что юзать это надо в background.js и передавать через сообщения. Вобще, могу ошибаться, опыт по расширениям практически отсутствует.

natureproj 20.10.2013 00:19

да, спасибо за ответы и помощь, но я уже полдня копаю как переслать сообщения и не пойму. Инфу брал отсюда http://developer.chrome.com/extensions/messaging.html
там в самом начале пример, как отсылать со страницы, как в моём случае.
Делаю так:
в файле contentscript.js пишу:
chrome.runtime.sendMessage({greeting:"hello"});


В popup.js пишу:
chrome.runtime.onMessage.addListener(
  function(request, sender, sendResponse) {
localStorage['abbrev'] = request.greeting;
  });
  alert(localStorage['abbrev']);

Да что не так-то? Уже не знаю что делать.

danik.js 20.10.2013 06:28

Цитата:

Сообщение от natureproj
В popup.js пишу:

Это нужно писать в background.js
Читай сначала http://developer.chrome.com/apps/app_lifecycle.html

natureproj 20.10.2013 15:42

Даник, спасибо:victory: Получилось! Оказывается если в background.js добавить данные в localstorage, то эти данные можно считывать и на popup.js


Часовой пояс GMT +3, время: 07:45.