Здравствуйте товарищи. Нужна ваша помощь.
Имеется следующая ситуация:
1. Страница состоит из фреймов.
2. Требуется из одно фрейма вызвать функцию в другом фрейме.
3. Внутри функции происходит проверка на тип входящих параметров. А именно, один из параметров должен быть объектом со свойствами и все такое.
4. Проверяю его следующим образом: "param.constructor == Object".
5. Заведомо подходящий параметр (вот такой: "obj = {}") который должен пройти проверку, проверку не проходит.
Вот. Прошу прокомментировать. Наглядный пример привожу ниже.
index.html:
Код:
|
<html>
<frameset rows="0,*" cols="*">
<frame src="data.html" name="data">
<frame src="test.html" name="content">
</frameset>
</html> |
test.html:
Код:
|
<html>
<head>
<title>проверка</title>
<script type="text/javascript">
var obj_1 = {},
obj_2 = new Object();
alert(obj_1.constructor == Object); //true
alert(obj_2.constructor == Object); //true
test(obj_1, obj_2);
//Здесь все верно. Оба алерта выдают тру.
function test(obj_1, obj_2) {
alert(obj_1.constructor == Object); //true
alert(obj_2.constructor == Object); //true
alert(typeof obj_1); //object
alert(obj_1.constructor); // function Object() {
// [native code]
// }
}
//Здесь оба алерта выдают фолс.
window.parent.data.test(obj_1, obj_2);
</script>
</head>
<body>
</body>
</html> |
data.html:
Код:
|
<html>
<head>
<script type="text/javascript">
function test(obj_1, obj_2) {
alert(obj_1.constructor == Object); //false
alert(obj_2.constructor == Object); //false
alert(typeof obj_1); //object
alert(obj_1.constructor); // function Object() {
// [native code]
// }
}
</script>
</head>
<body>
</body>
</html> |