Javascript Onload函数不适用于a href

Javascript Onload函数不适用于a href,javascript,jquery,Javascript,Jquery,我有一个剧本: <script> function load_thankyou() { alert('hii'); var delay = 1000; //Your delay in milliseconds var URL = 'thankyou.php'; setTimeout(function() { window.location = URL;

我有一个剧本:

<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函数不起作用。

如果要在单击时使用该函数,请这样使用:

<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,即所有图像均已加载。您可以执行此操作,但使用一个无法执行的标记…

您可以只为您的链接指定一个类,并为指向none的链接指定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标签是否存在,如果存在,它将执行该功能。有点像a-tags的onload

onload属性只处理body标签, 你不能在其他任何地方使用。 为了在标签中实现,需要在加载时在标签的点击事件中使用javascript


您可以通过javascript在body load事件中调用标记的click事件,如果是我,我只会调用该函数,而不是尝试将该函数归类到链接标记中,然后调用它onload

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

        }
    }?>

你确定a标签有一个onload属性吗?我不知道。可能是因为他们没有Answare和生气。onload事件只针对以下元素激发:、、和。正如我所说的,a-tag没有onload。但你可以像我贴的那样使用它。这是manuel为a-tags提供的在线服务。或者,让我们确切地说这个a标签:投票被否决的一个原因可能是一个显而易见的问题:为什么您要使用onload来实现这一点?为什么不直接调用函数,而不是尝试将函数放入链接标记中,然后调用onload?但这将在单击时执行,因此实际上它不是onload:您不需要在此处更改href。特别是指向一个Javascript调用,这对于SEO是不好的。。。我很感激你的feedbackonload属性只适用于body标签,你不能在其他任何地方使用。这是不对的。Onload对以下标签有效:,,,我刚刚编辑了我的文章,因为我意识到链接不像构建时那样方便:我没有投反对票,但是,这有什么实际意义呢?你为什么不简单地叫load_谢谢你;在$document.readyfunction{}中;就这样吧。这可能就是投票被否决的原因。它可以工作,但似乎完全没有必要,因为您可能有不同的方面,并且您不想在每个页面上加载它:您可能有100个页面,并且只希望在元素存在时执行它。当然,您可以检查元素是否存在,然后执行它。在调用load_thankyou之前,所有这些逻辑都可以通过任意数量的检查来完成;这并不是将函数写入一个链接的理由,该链接除了在一个单独的同样无用的函数单击所述链接时保留函数名称之外,不会有任何其他用途