GreyBox: вызов всплывающего окна внутри функции

В сценарии php, в определенный момент мне нужно показать всплывающее окно GreyBox:

<?php
    if ($myvar==''){
?>
    <script>
    // I need to show mypage.php in a GreyBox popup when in here
   GB_showCenter('Title', 'mypage.php' , 300, 620);

    </script>
<?php
    }
?>

Приведенный выше код показывает всплывающее окно, когда $ myvar пусто, но mypage.php никогда не загружается, gif загрузки никогда не прекращает вращаться, а Firebug отображает ошибку "GB null", указывающую на loader_frame.html.

Я также попробовал:

GB_show("Title", "mypage.php");

но та же проблема.

Если я сделаю:

<a href="mypage.php" onclick="return GB_showCenter('Title', this.href , 300, 620)">Click here</a>

где-то на странице у меня есть всплывающее окно без проблем, поэтому я знаю, что файлы установлены правильно.

Что я делаю неправильно?

Большое спасибо!

1 ответ

Решение

Я знаю, что это ужасно, но вы можете попробовать, если это работает:

<?php
    if ($myvar==''){
?>
    <script>

        pathArr = window.location.pathname.split('/');
        path = window.location.protocol + "//" + window.location.host+"/";
        for (i=1;i<pathArr.length-1;i++) path += pathArr[i]+"/";

        GB_showCenter('Title', path+'mypage.php' , 300, 620);

    </script>
<?php
    }
?>

ОК - еще один (даже более уродливый):

<?php
    if ($myvar==''){
?>
    <a href="mypage.php" onclick="return GB_showCenter('Title', this.href , 300, 620)" style="display: none;" id="myGreyBoxLink">Open GrayBox Window</a>
    <script>
        document.getElementById('myGreyBoxLink').onclick();
    </script>
<?php
    }
?>
Другие вопросы по тегам