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

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

Вернуться   Форум программистов > Web программирование > Общие вопросы Web
Регистрация

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

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

Ответ
 
Опции темы Поиск в этой теме
Старый 21.03.2017, 10:57   #1
4eSlavich
Пользователь
 
Регистрация: 21.03.2017
Сообщений: 16
По умолчанию Перенос данных между вкладками браузера.

Приветствую, господа программисты.
Задача: авторизация на сайтах из базы данных.
Имеется: таблица xlsx вида "ФИО" "Логин" "Пасс" "Сайт", jQuery модуль переводящий эту таблицу в html вид.
Нужно: добавить в конец каждой строки кнопку "подключить", далее открывается новая вкладка из "сайт" ячейки этой строки, в поля на открывшейся ячейке вводятся данные соответственно из ячеек "логин" и "пасс".
Так как знаний и каких либо практических умений в программировании у меня нет, всё чего я смог добиться, это копировать данные одной ячейки, которую сам укажу, типа [1, 1] (вторая строка, вторая ячейка).
Долго читая и думая, я понял что у кнопки нужно найти родительскую строку, а у той строки в массив собрать значения трёх чайлдов, и потом из этого массива выдёргивать значения. Но так и не смог осилить сие колдунство.
И еще понял что нельзя голым JS или jQuery перенести нужные данные на другую страницу без использования сторонних инструментов. Придётся делать расширение для браузера?
Использовать куки?
Использовать адресную строку?
Буду благодарен за примеры
4eSlavich вне форума Ответить с цитированием
Старый 23.03.2017, 06:08   #2
4eSlavich
Пользователь
 
Регистрация: 21.03.2017
Сообщений: 16
По умолчанию

Понял, задача сильно сложная. Давайте разделим на подпункты. Начнем с первого.
Есть таблица без каких либо идентификаторов типа классов или айдишников.
Код:
<table>
	<tr>
		<td>login_1</td>
		<td>pass_1</td>
		<td>site_1</td>
		<td><input type="button" value="connect"/></td>
	</tr>
	<tr>
		<td>login_2</td>
		<td>pass_2</td>
		<td>site_2</td>
		<td><input type="button" value="connect"/></td>
	</tr>
	<tr>
		<td>login_3</td>
		<td>pass_3</td>
		<td>site_3</td>
		<td><input type="button" value="connect"/></td>
	</tr>
</table>
Так вот первой задачей нужно чтобы на клик по кнопке, функция поняла в какой она строке находится, вытащила оттуда значения первой, второй и третьей ячеек, и запихала их в массив.
К сожалению моих навыков оказалось слишком мало, и я могу вытащить значения только из указанной ячейки, либо на все кнопки будет отрабатываться только первая строка.
4eSlavich вне форума Ответить с цитированием
Старый 23.03.2017, 09:25   #3
Alex11223
Старожил
 
Аватар для Alex11223
 
Регистрация: 12.01.2011
Сообщений: 19,500
По умолчанию

А что мешает дописать идентификаторы?
Непонятно ж даже как сами кнопки найти, чтоб повесить обработчик клика.

А остальное как раз просто.
Если jQuery, то
Код:
$('input[value="connect"]').click(function() {
    var cells = $(this).closest('tr').children();
    var login = cells.eq(0).text();
    alert(login);
});
Ушел с форума, https://www.programmersforum.rocks, alex.pantec@gmail.com, https://github.com/AlexP11223
ЛС отключены Аларом.
Alex11223 вне форума Ответить с цитированием
Старый 23.03.2017, 09:34   #4
Arigato
Высокая репутация
СуперМодератор
 
Аватар для Arigato
 
Регистрация: 27.07.2008
Сообщений: 16,216
По умолчанию

Не совсем понял, что вы хотите. Но отдельные вкладки это по сути отдельные окна. Чтобы отправить форму или ссылку на новую вкладку, надо добавить атрибут target="_blank". Если хотите в будущем иметь доступ к DOM этого окна, то в качестве значения надо дать какое-то имя, например: target="myNewWindow". Далее через JS можно будет обратиться к окну по его имени.
Arigato вне форума Ответить с цитированием
Старый 23.03.2017, 09:37   #5
4eSlavich
Пользователь
 
Регистрация: 21.03.2017
Сообщений: 16
По умолчанию

Цитата:
Сообщение от Alex11223 Посмотреть сообщение
А что мешает дописать идентификаторы?
Непонятно ж даже как сами кнопки найти, чтоб повесить обработчик клика.
Мешает то, что таблица генерируется сторонним модулем из xlsx файлика.

Цитата:
Сообщение от Alex11223 Посмотреть сообщение
А остальное как раз просто.
Если jQuery, то
Код:
$('input[value="connect"]').click(function() {
    var cells = $(this).closest('tr').children();
    var login = cells.eq(0).text();
    alert(login);
});
Вот такое как вам?
Код:
<script>
	$('input[type=button]').click(function(e){
		var login, pass, site;
		login = $(this).parent().parent().find('td:eq(0)').html();
		pass = $(this).parent().parent().find('td:eq(1)').html();
		site = $(this).parent().parent().find('td:eq(2)').html();
		console.log(login, pass, site);
	});
</script>
Работать работает, но в купе с тем самым модулем - не очень))) Может что исправить стоит?
4eSlavich вне форума Ответить с цитированием
Старый 23.03.2017, 09:41   #6
Alex11223
Старожил
 
Аватар для Alex11223
 
Регистрация: 12.01.2011
Сообщений: 19,500
По умолчанию

Не очень что?
Это ж и есть почти тоже самое что у меня, только с лишними запросами поиска элементов.
И элементов с type=button может быть много на странице, по value наверно безопаснее.
Ушел с форума, https://www.programmersforum.rocks, alex.pantec@gmail.com, https://github.com/AlexP11223
ЛС отключены Аларом.
Alex11223 вне форума Ответить с цитированием
Старый 23.03.2017, 09:42   #7
4eSlavich
Пользователь
 
Регистрация: 21.03.2017
Сообщений: 16
По умолчанию

Цитата:
Сообщение от Arigato Посмотреть сообщение
Чтобы отправить форму или ссылку на новую вкладку, надо добавить атрибут target="_blank".
Вся беда в том, что мне не форму нужно отправить, а только некоторые значения из таблицы в нужные поля.Скажем имеется три сайта с формой логина и пароля, но на первом сайте они имеют айдишники "log" и "pas", на втором "login" "password", а на третьем у программиста воображение разыгралось, и он кулаками им сгенерировал айди. Форму при таких условиях будет трудно отправить, если я правильно соображаю что к чему
4eSlavich вне форума Ответить с цитированием
Старый 23.03.2017, 09:44   #8
4eSlavich
Пользователь
 
Регистрация: 21.03.2017
Сообщений: 16
По умолчанию

Цитата:
Сообщение от Alex11223 Посмотреть сообщение
Не очень что?
Это ж и есть почти тоже самое что у меня, только с лишними запросами поиска элементов.
И элементов с type=button может быть много на странице, по value наверно безопаснее.
Не очень работает, то бишь вообще не работает. Есть у меня подозрение что где-то уже написан подобный обработчик на input, из-за чего и не работает.

Про value пожалуй солидарен, не дошло до самого.
Решилась проблема вот так:
Код:
function bindBtnClick(){
       $('input[value="connect"]').click(function(e){
	        var cells = $(this).closest('tr').children();
                var login = cells.eq(4).text();
                var pass = cells.eq(5).text();
                var site = cells.eq(3).text();
                console.log(login, pass, site);
            });
}
Теперь осталось перенести значения "логин" и "пасс" в соответствующие поля на другой вкладке. По мере поступления проблем и решений буду отписывать.

Последний раз редактировалось 4eSlavich; 23.03.2017 в 12:00. Причина: Решение найдено
4eSlavich вне форума Ответить с цитированием
Старый 23.03.2017, 22:48   #9
Naive
Раздолбайских Дел
Старожил
 
Аватар для Naive
 
Регистрация: 22.05.2009
Сообщений: 3,828
По умолчанию

https://learn.javascript.ru/iframes — это к теме в целом.
Естественно, ты кроме как GET-запросом не сможешь передать в другую вкладку данные. Ты не сможешь управлять другой вкладкой, если она на другом домене (там тупо нужно принимать сообщения с твоей вкладки с разрешения твоего домена).
Ниодин адекватный программист не позволит GET-ом передавать данные авторизации, даже на https.
Так что то, что ты хочешь, делается через написание своего плагина к браузеру.
Alar, верни репу!
Naive вне форума Ответить с цитированием
Старый 24.03.2017, 06:09   #10
4eSlavich
Пользователь
 
Регистрация: 21.03.2017
Сообщений: 16
По умолчанию

Цитата:
Сообщение от Naive Посмотреть сообщение
Так что то, что ты хочешь, делается через написание своего плагина к браузеру.
Да, именно этим я чичас и пытаюсь заняться, проблема в том что как JS и jQ, так и там для меня - тёмный лес Пытаюсь что-то понять

В общем и целом, ежели я правильно понял, обмен информацией между страницами возможен двумя способами:
- фоновая страница
- event-страница

Теперь жду того славного момента, когда до меня дойдёт как отправить информацию на фоновую или event страницы, и как её оттуда вытащить.

Последний раз редактировалось 4eSlavich; 24.03.2017 в 08:33. Причина: Курение манов
4eSlavich вне форума Ответить с цитированием
Ответ


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

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

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


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
перенос данных между таблицами Обыватель Microsoft Office Excel 7 25.10.2013 11:08
Управление вкладками браузера Aleskandr JavaScript, Ajax 0 28.01.2013 10:39
Импорт (перенос) данных между двумя базами reihtmonbern Помощь студентам 1 11.11.2011 13:24
Перенос данных между таблицами в разных базах. Volodq БД в Delphi 3 27.05.2011 11:54
MySQL перенос данных между базами данных с MyDAC Nikolay88 БД в Delphi 3 14.05.2011 00:17