Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > Web программирование > JavaScript, Ajax
Регистрация

Восстановить пароль
Повторная активизация e-mail

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 25.07.2015, 00:03   #1
nibufep
Форумчанин
 
Регистрация: 02.08.2014
Сообщений: 476
По умолчанию Заменить код на странице

Доброго дня!

Как сделать следующие:

имеется txt, примерно его содержимое:

Код:
https://www.yandex.ru/###Текст который нужно изменить###Текст на который заменить.
https://www.google.com/###Текст который нужно изменить###Текст на который заменить.
https://www.yandex.ru/###Текст2 который нужно изменить###Текст2 на который заменить.
Далее, проверяем если текущия страница (location.href) совпадает с каким-то url из бд то заменяем текст на указанный в БД:

document.body.innerHTML = document.body.innerHTML.replace('Те кст который нужно изменить', 'Текст на который заменить.');

если их 2 и более то заменить весь так-же.

Как такое примерно сделать?

Или возможно не в txt.

Вообщем пишу плагин для Chrome, мне нужно хранить это где-то только пока Chrome работает, когда его закрыли и заново открыли этих данных уже быть не должно, только заново записывать.

Вот например, LocalStorage, он ведь сохраняет данные для текущего домена? А можно ли потом все данные от туда циклом прочитать? Или только по 1 localStorage.date?

Последний раз редактировалось Stilet; 25.07.2015 в 07:00.
nibufep вне форума Ответить с цитированием
Старый 25.07.2015, 07:05   #2
Stilet
Белик Виталий :)
Старожил
 
Аватар для Stilet
 
Регистрация: 23.07.2007
Сообщений: 57,792
По умолчанию

Цитата:
А можно ли потом все данные от туда циклом прочитать?
Можно.
Например:
Код:
var b=document.body.innerHTML;
for(i=0;;i++){
 a=localStorage.getItem('Элемент'+i);
 if(!a) break;
 s=a.split("###");
 b=b.replace(s[0]+s[1],s[0]+s[2]);
}
document.body.innerHTML=b;
Соответственно данные придется записывать с именем "Элемент№"
I'm learning to live...
Stilet вне форума Ответить с цитированием
Старый 25.07.2015, 09:51   #3
Fenex
Форумчанин
 
Аватар для Fenex
 
Регистрация: 15.02.2012
Сообщений: 823
По умолчанию

Надо быть аккуратным используя document.body.innerHTML. Все элементы на странице могут потерять интерактивность, потому что они все по факту будут уже другими элементами. Даже безобидное на первый взгляд присваивание
Код:
document.body.innerHTML = document.body.innerHTML;
скорее всего сломает JS-код на сайте, который манипулирует DOM.
^-.-^ My GitHub
Fenex вне форума Ответить с цитированием
Старый 25.07.2015, 10:47   #4
nibufep
Форумчанин
 
Регистрация: 02.08.2014
Сообщений: 476
По умолчанию

Цитата:
Сообщение от Stilet Посмотреть сообщение
Можно.
Например:
Код:
var b=document.body.innerHTML;
for(i=0;;i++){
 a=localStorage.getItem('Элемент'+i);
 if(!a) break;
 s=a.split("###");
 b=b.replace(s[0]+s[1],s[0]+s[2]);
}
document.body.innerHTML=b;
Соответственно данные придется записывать с именем "Элемент№"
А будут ли данные стиратся после перезапуска браузера? И останутся ли эти данные если не браузера закрыть, а вкладки с этой страницей?
nibufep вне форума Ответить с цитированием
Старый 25.07.2015, 12:39   #5
Stilet
Белик Виталий :)
Старожил
 
Аватар для Stilet
 
Регистрация: 23.07.2007
Сообщений: 57,792
По умолчанию

Ну localStorage это, если не ошибаюсь, кэш. Если браузер его хранит, значит будут.
В любом случае лично я там и храню разнообразные данные, которые могут понадобиться на страничке, и пока еще не терял их ни разу.
I'm learning to live...
Stilet вне форума Ответить с цитированием
Старый 25.07.2015, 13:02   #6
nibufep
Форумчанин
 
Регистрация: 02.08.2014
Сообщений: 476
По умолчанию

Цитата:
Сообщение от Stilet Посмотреть сообщение
Ну localStorage это, если не ошибаюсь, кэш. Если браузер его хранит, значит будут.
В любом случае лично я там и храню разнообразные данные, которые могут понадобиться на страничке, и пока еще не терял их ни разу.
ну а если мне их нужно удалять когда браузер закрываю, то можно ли это сделать?
nibufep вне форума Ответить с цитированием
Старый 25.07.2015, 13:03   #7
Stilet
Белик Виталий :)
Старожил
 
Аватар для Stilet
 
Регистрация: 23.07.2007
Сообщений: 57,792
По умолчанию

А вот как удалять из локалстораги я не знаю.
I'm learning to live...
Stilet вне форума Ответить с цитированием
Старый 25.07.2015, 13:53   #8
Naive
Раздолбайских Дел
Старожил
 
Аватар для Naive
 
Регистрация: 22.05.2009
Сообщений: 3,828
По умолчанию

Цитата:
Сообщение от Stilet Посмотреть сообщение
А вот как удалять из локалстораги я не знаю.
Код:
localStorage.removeItem()
судя по всему ты юзаешь что-то вроде
Код:
localStorage.myItem = 'qwerty';
localStorage['myItem'] = 'qwerty';
Правильней использовать методы setItem, getItem.
По аналогии с innerHTML vs appendChild.
Методы плюсом ко всему вызывают события изменения/чтения/удаления, которые можно отслеживать на другой вкладке/окне браузера.
Alar, верни репу!
Naive вне форума Ответить с цитированием
Старый 25.07.2015, 14:18   #9
nibufep
Форумчанин
 
Регистрация: 02.08.2014
Сообщений: 476
По умолчанию

Цитата:
Сообщение от Naive Посмотреть сообщение
Код:
localStorage.removeItem()
Это только по 1 записи удалять? А сразу записи ко всем доменам можно удалить?
--
Так ведь можно удалить? localStorage.clear();
--
И еще хотелось бы узнать, есть какие-то ограничения при хранение в localStorage?

Последний раз редактировалось nibufep; 25.07.2015 в 15:44.
nibufep вне форума Ответить с цитированием
Старый 25.07.2015, 15:51   #10
Stilet
Белик Виталий :)
Старожил
 
Аватар для Stilet
 
Регистрация: 23.07.2007
Сообщений: 57,792
По умолчанию

Цитата:
судя по всему ты юзаешь что-то вроде
Я? У меня так:
Код:
function mem(name,value){
 if(value!=undefined) 
  localStorage.setItem(name,value);
 else 
  return localStorage.getItem(name);
}
I'm learning to live...
Stilet вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц

Опции темы Поиск в этой теме
Поиск в этой теме:

Расширенный поиск


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Заменить код символа на символ rikomono Microsoft Office Excel 1 24.02.2013 18:47
заменить код на malloc() Андрей frost Общие вопросы C/C++ 3 17.05.2012 08:39
код на странице voldemen HTML и CSS 2 08.05.2010 23:29
Узнать, на какой странице выполняется код Winlook PHP 1 27.03.2010 04:44
Заменить HTML текст на открытой странице LEXX_RUS Работа с сетью в Delphi 1 05.08.2009 09:07