在PHP Header之前调用javascript函数

时间:2012-08-29 14:35:53

标签: php javascript

我使用此代码调用javascript函数,然后重定向PHP页面。

<script type='text/javascript'>

mixpanel.track('login: Login ', {'page name' : document.title, 'url' : window.location.pathname});
</script>;  

<?php
        header("Location:".$domain_name."/services.htm");

?>

但是这段代码不起作用,如果我没有重定向,那么js函数工作正常。

我也尝试了ob_start();ob_end_flush();,但没有任何效果。如何在重定向之前使用JS函数。我是JavaScript和PHP头文件的新手。

3 个答案:

答案 0 :(得分:3)

PHP在服务器上运行,JavaScript在浏览器中运行。你不能把它们混合在一起。

您需要做的是使用JavaScript重定向,而不是PHP。

<script type='text/javascript'>
    mixpanel.track('login: Login ', {'page name' : document.title, 'url' : window.location.pathname});
    window.location = '<?=$domain_name?>/services.htm';
</script>

更新:重定向在mixpanel.track完成之前触发。您需要将函数传递给回调 docs ,因此它会在完成后运行。

<script type='text/javascript'>
    mixpanel.track('login: Login ', {
        'page name': document.title,
        'url': window.location.pathname
    }, function(){
        window.location = '<?=$domain_name?>/services.htm';
    });
</script>

答案 1 :(得分:1)

您也应该使用javascript转发您的用户。像window.location = '<?php echo $domain_name ?>/services.htm';

这样的东西

答案 2 :(得分:-1)

使用您的函数后,您可以使用Javascript重定向:

window.location = 'http://www.example.com';

或者,您可以使用基于Ajax的解决方案;但它必须与window.location结合使用,其中位置由ajax调用的php脚本给出。