Доступ к содержимому других вкладок в браузере
Я использую Mozilla Firefox, и я пытаюсь выяснить способ доступа к содержимому других вкладок в том же окне, используя JavaScript и DOM (я открыт для других методов, если они существуют).
Например. Я хочу запустить JavaScript в tab1
, который может найти название другой вкладки. В принципе, мне нужно это, чтобы я мог идентифицировать вкладку, открытую из-за href
на моей текущей странице без использования метода window.open
. Все, что я хочу, это простая гиперссылка, которая открывает страницу, принадлежащую тому же домену, что и текущая страница (страница должна быть открыта на новой вкладке). Теперь я хочу иметь доступ к этой новой вкладке с текущей вкладки.
Ответы
Ответ 1
Вы можете использовать HTML5 кросс-окна сообщений... но это своего рода передний край.
Даже в этом случае вам, вероятно, потребуется захватить тег 'click' с помощью javascript и открыть окно самостоятельно, чтобы у вас был доступ к новому объекту окна для размещения сообщений.
Ответ 2
Пока вы можете легко открыть новое окно с помощью javascript, я уверен, что это насколько это возможно. С точки зрения безопасности вы не хотите, чтобы Javascript на одной вкладке мог запросить/получить доступ к DOM на другой вкладке. Затем любой сайт сможет получить доступ к вашим реквизитам банковского счета и т.д., Если оба сайта были открыты на отдельных вкладках.
Ответ 3
Вы можете получить доступ к новому окну/вкладке, если он был открыт с помощью JavaScript, и страница действительно находится в том же домене.
Вы можете открыть окно/вкладку так
var win = window.open("/path_to_page");
Затем вам придется ждать загрузки страницы, прежде чем вы сможете получить доступ, например. название.
win.onload = function(){ alert(win.document.title); };
Ответ 4
Vamyip,
Попробуйте настроить файл cookie, доступный для любой страницы в том же домене. На других страницах используйте таймер javascript, чтобы проверить, изменилось ли значение cookie, и когда оно есть, вы можете использовать его значение и принять меры.
Это сработало для меня.