vamyip
vamyip

Reputation: 1171

Accessing the content of other tabs in a browser

I am using Mozilla Firefox and I am trying to figure out a way to access the content of other tabs in the same window using JavaScript and the DOM (I am open to other techniques if exist).

E.g., I want to run JavaScript code in tab1 which can find the title of some other tab. Basically I need this so that I can identify a tab which has opened due an href in my current page without using window.open method. All I want is a simple hyperlink which opens a page belonging to the same domain as the current page (the page should be opened in a new tab). Now I want to be able to access this new tab from the current tab.

Upvotes: 19

Views: 47212

Answers (5)

James Williams
James Williams

Reputation: 1

Well, this would not be possible, you could try

<a target="_blank" rel="opener" href="about:blank"></a>

This makes a link that opens an about:blank, this will have the same domain as the page that opened It because of the Same-Origen-policy.

Upvotes: -1

Shane
Shane

Reputation: 313

Try setting a cookie which is accessible to any page in the same domain. On other pages, use a JavaScript timer to check if the cookie value has changed and when it has you can use its value and take an action.

It worked for me.

Upvotes: 10

Paul Hadfield
Paul Hadfield

Reputation: 6136

Whilst you can easily open a new window using JavaScript, I'm sure that is as far as it goes. From a security point of view you wouldn't want JavaScript in one tab being able to query / access the DOM in another tab. Any site would then be able to gain access to your bank account details, etc. if both sites were opened in separate tabs.

Upvotes: 17

sje397
sje397

Reputation: 41822

You could use HTML5 cross-window messaging (archive.org link...but that's kind of cutting edge.

Even in that case, you'd probably need to hijack the <a> tag 'click' event with JavaScript and open the window yourself so that you'd have access to the new window object for posting messages.

Upvotes: 11

livedo
livedo

Reputation: 1067

You can access the new window/tab if it was opened with JavaScript and the page indeed is in the same domain.

You can open the window/tab like so

var win = window.open("/path_to_page");

Then you'll have to wait for the page to load before you can access e.g. the title.

win.onload = function(){ alert(win.document.title); };

Upvotes: 12

Related Questions