Tôi có một cửa sổ, trước khi đóng, tôi làm mới trang cơ bản.typeof trả về "không xác định" trong IE
if(opener && typeof(opener.Refresh) != 'undefined')
{
opener.Refresh();
}
Nếu tôi chuyển ra khỏi trang mở ban đầu, mã này sẽ ném một "Permission Denied" lỗi.
Gỡ rối mã tiết lộ rằng typeof(opener.Refresh)
là bằng "không rõ" thay vì dự kiến "không xác định".
Theo như tôi biết "không xác định" không phải là một trong các giá trị trả lại cho typeof
, vậy giá trị này sẽ được trả lại như thế nào và tại sao?
Thông tin thêm
tôi tránh các lỗi bằng cách thay đổi các chi phiếu đến:
if(opener && typeof(opener.Refresh) == 'function')
Tuy nhiên ví dụ như thế này (detecting-an-undefined-object-property-in-javascript) dường như không tính đến yếu tố "không rõ" vào phương trình .
Đó là IE, bạn mong đợi điều gì? – 0x499602D2
Cách 'khai mở' được khai báo như thế nào? –
Nó không được khai báo, tuy nhiên cửa sổ được tạo ra với một window.open tiêu chuẩn. –