Onload函数不适用于href

时间:2014-12-29 10:27:55

标签: javascript jquery

我有一个脚本:

<script>
function load_thankyou()
{
    alert('hii');
    var delay = 1000; //Your delay in milliseconds
    var URL = 'thankyou.php';
    setTimeout(function()
                { 
                  window.location = URL; 
                }, delay);
}
</script>

以下列方式调用该函数......

<?php
    if ($_SERVER['REQUEST_METHOD'] == 'POST') 
    {
        if($error_flag == 0)
        {?>

    <a class="close" href="#" onload="load_thankyou()">×</a>
<?php
        }
    }?>

但似乎onload()函数不能正常工作..

4 个答案:

答案 0 :(得分:1)

你可以做的是给你的链接只有一个类和href到#(什么链接到无),如:

<a class="close" href="#" >×</a>

你的JS看起来像:

<script>

    $(document).ready(function(){
        //check if close element exists. If yes, execute the function
        if($('.close').length() > 0) load_thankyou();
    });

    function load_thankyou()
    {
        alert('hii');
        var delay = 1000; //Your delay in milliseconds
        var URL = 'thankyou.php';
        setTimeout(function()
                    { 
                      window.location = URL; 
                    }, delay);
    }

</script>

这等待页面加载并检查a-tag是否存在,如果是,它将执行该功能。有点像a-tags的onload

答案 1 :(得分:0)

onload属性仅适用于“body”标记,
你不能在别处使用。
要在标记中实现,您需要在加载时使用“a”标记的点击事件中的javascript执行此操作

你可以通过javascript

在身体加载事件中“a”标记点击事件

答案 2 :(得分:0)

如果是我,我会调用该函数而不是尝试将函数归入链接标记,然后将其称为onload

<?php
    if ($_SERVER['REQUEST_METHOD'] == 'POST') 
    {
        if($error_flag == 0)
        {
           echo 'load_thankyou()';

        }
    }?>

答案 3 :(得分:-1)

如果要在单击时使用该功能,请使用此类:

<a class="close" href="javascript:load_thankyou()">×</a>

或者,如果你想在标签准备好之后立即执行代码,那么在html之后使用你的代码,我宁愿在结束主体的结尾使用它:

<script>
load_thankyou();
</script>
</body>

在您的情况下,您可以这样做:

<?php
    if ($_SERVER['REQUEST_METHOD'] == 'POST') 
    {
        if($error_flag == 0)
        {?>

    <a class="close" href="#">×</a>
    <script>
     load_thankyou();
    </script>
<?php
        }
    }?>

onload仅针对文档执行,真正表示所有图片都已加载,您执行此操作<body onload="">但使用a标记则无法执行...