Модераторы: Sardar, Aliance
  

Поиск:

Ответ в темуСоздание новой темы Создание опроса
> Скрипт для перехода между вкладками. 
:(
    Опции темы
ksfinks
Дата 8.11.2009, 20:47 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 10
Регистрация: 8.11.2009

Репутация: нет
Всего: нет



Здравствуйте. Помогите пожалуйста со скриптом который по замыслу должен делать следующее.
1. Перемещаться по вкладкам firefox.
2. Вызывать событие submit для форму на каждой вкладке. Форма везде одна и та же.

2-ой пункт я реализовал в кач-ве скрипта для greasemonkey:

Код

// ==UserScript==
// @name          GoButtonsClick
// @namespace     http://diveintogreasemonkey.org/download/
// @description   clicking on all "Go" Buttons
// @include       *
// @exclude       http://diveintogreasemonkey.org/*
// @exclude       http://www.diveintogreasemonkey.org/*
// ==/UserScript==

window.go = {

  handler: function(e)
  { 

    if(!e.altKey) return true;
    if(e.keyCode!=71) return true;
     window.go.runScript();
    return false;
  },

  init: function(){
   window.addEventListener('keydown',window.go.handler,false);
  },

  runScript: function()
  {
  document.forms[0].submit();
  }

  };
window.go.init();

В результате при нажатии Alt + G выполняется submit(). Теперь хочу сделать тоже самое, но чтобы выполнялось sumbit() для всех открытых вкладок. Проблема в том, что не могу сообразить, как мне с помощью скрипта переключаться между вкладками. 

Заранее спасибо за помощь.

PM MAIL   Вверх
IDVsbruck
Дата 8.11.2009, 23:39 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 778
Регистрация: 12.11.2006

Репутация: 7
Всего: 22



А с чего ты взял, что это можно сделать? - Каждая вкладка - фактически отдельное окно со своим контентом, песочницей и ДОМом и у каждой вкладки "свой javascript". У тебя не получится это делать изнутри.
PM MAIL   Вверх
ksfinks
Дата 9.11.2009, 12:25 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 10
Регистрация: 8.11.2009

Репутация: нет
Всего: нет



Если не получится изнутри, то может быть снаружи? Как-то же в firefox происходит управление вкладками, да и переключаться между ними можно с помощью Ctr+Tab. Вот здесь вопрос - можно ли реализовать это событие переключения между вкладками с помощью пользовательского скрипта, если нет - то как такое еще можно сделать. Теперь если мою задачу сформулировать по-другому - то получится такая:

Как реализовать в firefox такой цикл:

Пока не перебраны все вкладки
   делать на каждой вкладке submit();
Конец цикла.
PM MAIL   Вверх
IDVsbruck
Дата 9.11.2009, 13:17 (ссылка)  | (голосов:1) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 778
Регистрация: 12.11.2006

Репутация: 7
Всего: 22



Блин, не понял "в лоб", объясню по-другому: представь, что у тебя на компе есть 2 (как минимум) операционных системы - допустим, Win7 и WinXP, выбор между которыми ты производишь при загрузке компа. Можешь ли ты из Win7 сделать, скажем, отправку почты или серфинг, в WinXP? А почему?

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

Если все упирается в решение такой задачи, то она делается ну точно не через клиентскую реализацию. Все связанные страницы имеют связь с сервером, откуда должна поступить команда совершить определенные действия. Судя по твоим вопросам, тебе ближайший годик точно не светит решить ее грамотно. Вариант с таймером на N секунд для опроса сервера грамотным вариантом я точно не считаю.
PM MAIL   Вверх
ksfinks
Дата 9.11.2009, 13:42 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 10
Регистрация: 8.11.2009

Репутация: нет
Всего: нет



Спасибо за подробное объяснение. Но я как полный ламер все равно мало что понял). А решение нашел. Даже два.
1. Т.к. window - это объект браузера, то можно написать расширение для firefox, которое решит проблему.
2. Более простой вариант. Все вкладки у меня открываются также с помощью скрипта, поэтому я в этом скрипте могу завести массив ссылок  на них:

Код

var myWindows = Array();
mywindows.push (window.open(someUrl));


а потом уже работать с ним. 

Если есть предложения по первому варианту - написание расширения. Буду рад услышать, как это примерно можно осуществить, т.к. с этим дела еще не имел.

P.S. 
Цитата

Если все упирается в решение такой задачи, то она делается ну точно не через клиентскую реализацию

К сожалению, возможности серверной реализации нет, т.к. нет к нему доступа 

Это сообщение отредактировал(а) ksfinks - 9.11.2009, 13:46
PM MAIL   Вверх
mxt
Дата 9.11.2009, 18:44 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


Профиль
Группа: Участник
Сообщений: 133
Регистрация: 6.9.2007

Репутация: 1
Всего: 1



--------------------
PM MAIL   Вверх
ksfinks
Дата 9.11.2009, 21:03 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 10
Регистрация: 8.11.2009

Репутация: нет
Всего: нет



спасибо, mxt. То, что надо.
PM MAIL   Вверх
  
Ответ в темуСоздание новой темы Создание опроса
0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей)
0 Пользователей:
« Предыдущая тема | JavaScript: для новичков | Следующая тема »


 




[ Время генерации скрипта: 0.0446 ]   [ Использовано запросов: 22 ]   [ GZIP включён ]


Реклама на сайте     Информационное спонсорство

 
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности     Powered by Invision Power Board(R) 1.3 © 2003  IPS, Inc.