Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

What does the javascript snippet mean?

Tags:

javascript

if(self!=top){ window.open(self.location,'_top'); }

Can someone explain this?

EDIT

What does self!=top and window.open(self.location,'_top') mean respectively?

like image 363
Mask Avatar asked Dec 30 '22 10:12

Mask


1 Answers

This will break out of a HTML frame and replace the top-level frame by the current page.

It's akin to clicking a link with target="_top" set which will throw away the complete frameset and replace it with the page that link points to. It's exactly what that code does by simply "opening a link" (in user terms; in JavaScript it takes the form of window.open) to the very same page we're seeing, but at the top level.

self in this respect is the page we're currently in. top is the top-level frame the browser is displaying. If the browser doesn't display a frameset, then self == top holds. If however, our page is framed, then they will be different.

So self != top detects if the page is displayed in a frame and window.open is, as noted before, just like clicking on a link with the target attribute set to "_top" (the second argument.

like image 110
Joey Avatar answered Jan 11 '23 07:01

Joey