[ Поиск ] - [ Пользователи ] - [ Календарь ]
Полная Версия: Не создается новое окно
Basili4
Ну просто беда IE7 не хочет создавать новое окно я не могу понять почему если вешаю слздание окна на кнопу то все ок окно создается если в через AJAX то нет. может кто подскажет в чем дело код привел как есть только коменты заменил


<td onClick='StartLoading(); x_php_GetCadr(encode_utf8("$row[1]"),StartWaitIMG);'><img src='img/cadr.png'/></td>


x_php_GetCadr(encode_utf8("$row[1]"),StartWaitIMG); // вызывает php_GetCadr работы которой передает в StartWaitIMG

function php_GetCadr($ActiveOM)
{
$userid=$_SESSION['user'][0];

$Sql="SELECT
count(id)
FROM
imageready
WHERE
imageready.userid =
$userid and sn=(SELECT
car.Sn
FROM
car
WHERE
car.GosNumber = '
$ActiveOM')";



$result=mysql_query($Sql);

$row=mysql_fetch_row($result);

if ($row[0]>0) return $ActiveOM;



SendMessage(103,$ActiveOM);

if ($result===false) // Ошибка запроса базы нет таблицы нет . ВСЕ нештатные ситуации
return "Error";
else
return
iconv('windows-1251','UTF-8',$ActiveOM); // без ошибок. Обрабатываем штатные ситуации
}




function StartWaitIMG(GosNomer) //вызываем php_StartWaitIMG и ждем результат.
{
x_php_StartWaitIMG(GosNomer,
function (res)
{

if(res=='WAIT') // продолжаем ждать картинку
{
setTimeout(StartWaitIMG(GosNomer), 1000);
}
else
{//Чегото дождались убираем сообщенеие о загрузке

StopLoading(); //Смотрим результат

if (res=='NULL') // на машине нет камеры или она не исправна
{


alert('Автомобиль не оборудован камерой');

}
else // на машине есть камера пришла к нам фотка её надо показать
{
imageBox(res)
}

}
}

);

}






function php_StartWaitIMG($ActiveOM) // приходит номер машины
{
$id=$_SESSION['user'][0];

$Sql="SELECT
img
FROM
imageready
WHERE imageready.userid=
$id
and Sn=(SELECT
car.Sn
FROM
car
WHERE
car.GosNumber = '
$ActiveOM')";

$result=mysql_query($Sql);

if ($result===false)return mysql_error()."Error $ActiveOM";

if (mysql_num_rows($result)>0) // есть ли фотки для пользователя
//есть


{
$row=mysql_fetch_row($result); // есть ли фотка для этого пользовтаеля если она пустая

if (!empty($row[0]))
{

// не пустая !!!!!!

$FN='UserGuest'.'\\'.date("H_i_s").mt_rand().'.jpg';
WriteFile($FN,$row[0]); //пишем её в файл
}

else
$FN='NULL'; // пустая машина не оборудована камерой


//убивем фото из базы

$Sql="DELETE LOW_PRIORITY QUICK
FROM
imageready
WHERE
imageready.userid=
$id AND imageready.sn=(SELECT
car.Sn
FROM
car
WHERE
car.GosNumber = '
$ActiveOM')";


$result=mysql_query($Sql);
return $FN; // возращаем имя файла
}
else
return
'WAIT';//фоток нет жди еще.
}




function imageBox(file)
{
var viewer = window.open('map.html');
alert( viewer == null );

//здесь код создания окна и вывода фотки внего

беда в том что окно не создается т.е. alert пишет true это происходит на IE7 и на IE8

}





Спустя 47 минут, 59 секунд (9.07.2010 - 10:15) Basili4 написал(а):
Опытным путем выяснил при любой попытки создать окно в функции в которой обрабатывается ответ от сервера возвращается null кто нибудь может объяснить почему так это происходит ????

Спустя 1 час, 2 минуты, 55 секунд (9.07.2010 - 11:18) twin написал(а):
Ужос. Для начала перестань пользоваться табулятором.
В этой каше вообще не понятно, аким таким чудесным образом JS перемешался с PHP...

Спустя 48 минут, 3 секунды (9.07.2010 - 12:06) Basili4 написал(а):
В первом посте я выбрал все функции влияющие на работу в одно место и запостил их щас эксперементирую вот что у меня получилось за исходный пример я взял код http://irbis-team.com/15/13/1



<html>
<head>
<script
type="text/javascript" language="javascript">
var
req = Create();


function Create(){
if(navigator.appName == "Microsoft Internet Explorer"){
req = new ActiveXObject("Microsoft.XMLHTTP");
}else{
req = new XMLHttpRequest();
}
return req;
}


function Request(query)
{
req.open('post', 'ajax.php' , true);
req.onreadystatechange = Refresh;
req.setRequestHeader("Content-Type", "application/x-www-form-urlencoded; charset=utf-8");
req.send(query);
}


function Refresh()
{
if( req.readyState == 4 )
{ wnd=window.open(); // Попытка создать окно на IE7 всегда терпит неудачу
alert(wnd==null); //в IE7 пишет true окно не создается IE8 доступные для теста ведут себя по разному.
}
}


function Pusk()
{
var query;
query ='txt=1';
Request(query);
}

</script>
</head>
<body>
<div
id="ajax"></div>
<input
type="button" value="ТЫРЦ" onClick="Pusk()">
<img
src="prel.gif" width="1" height="1" />
</body>
</html>



Это код ajax.php

<?php
$txt = isset($_POST['txt'])?$_POST['txt']:NULL;
echo $txt;
?>

Спустя 7 часов, 42 секунды (9.07.2010 - 19:07) Basili4 написал(а):
Нашел причину и она была. кто мог бы подумать в том что были заблокированы всплывающие окна. именно на IE7 и на одном IE8.


_____________
Цитата
От постоянного сидения рядом с клавиатурой начинает болеть спина.


Делаю сайты, пишу скрипты php, js.
Быстрый ответ:

 Графические смайлики |  Показывать подпись
Здесь расположена полная версия этой страницы.
Invision Power Board © 2001-2024 Invision Power Services, Inc.