I have a window, where before being closed I refresh the underlying page.
if(opener && typeof(opener.Refresh) != \'undefined\')
{
opener.Refresh(
According to a duplicate question at Bytes, the typeof value unknown
is added to JScript version 8, along with date
.
A comment to a blog by Robert Nyman can also be explanatory:
Internet Explorer displays “unknown” when the object in question is on the other side of a COM+ bridge. You may not know this or realize this, but MS’s XMLHTTP object is part of a different COM+ object that implements IUnknown; when you call methods on it, you’re doing so over a COM bridge and not calling native JavaScript.
Basically that’s MS’s answer if you try to test or access something that’s not a true part of the JScript engine.
Try in
operator. I had the same problem (with applet) and I solved it using in
:
if("Refresh" in opener) {
opener.Refresh();
}
The ECMAScript specification states that for host objects the return value of the typeof
operator is:
Implementation-defined except may not be "
undefined
", "boolean
", "number
", or "string
".
I believe the unknown
value is only ever returned in Internet Explorer. Interestingly, MSDN does not mention it:
There are six possible values that typeof returns: "number," "string," "boolean," "object," "function," and "undefined."