Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/387.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 单击链接后的body onload事件_Javascript - Fatal编程技术网

Javascript 单击链接后的body onload事件

Javascript 单击链接后的body onload事件,javascript,Javascript,基本上,我的页面test.php页面上有链接 <a href="demo.php">click</a> <!-- test.php page --> 我想每次在demo.php页面上调用body onload事件的函数,但只有在单击上面的链接时,页面刷新时才会调用该函数 <body onLoad="JavaScript:event(1,product,100);"> <!-- demo.php page --> 您可以通

基本上,我的页面test.php页面上有链接

  <a href="demo.php">click</a> <!-- test.php page -->

我想每次在demo.php页面上调用body onload事件的函数,但只有在单击上面的链接时,页面刷新时才会调用该函数

 <body onLoad="JavaScript:event(1,product,100);">  <!-- demo.php page -->

您可以通过在URL、链接HTML中使用哈希标记来实现这一点:

<a href="demo.php#noCall">click</a>

demo.php javascript:

<script type="text/javascript">
window.onload = function() {
    if (document.location.href.indexOf("#noCall") == -1) { //Does the hashtag NOT exist in the URL?
        alert("Event called when link is not clicked"); //Event called
        window.location.hash = ''; //Remove noCall from the hash for page-reload
    }
};
</script>

window.onload=函数(){
如果(document.location.href.indexOf(“#noCall”)=-1{//,则该标签是否不存在于URL中?
警报(“未单击链接时调用的事件”);//调用的事件
window.location.hash='';//从哈希中删除noCall以重新加载页面
}
};

添加一个变量,如
var first\u time=true
,然后在执行任何操作之前在函数中首先检查它是否是第一次:
if(first_time==false)return false首次运行该功能后,将
first\u time
设置为
false

校正


上述解决方案将不会像问题中预期的那样起作用。刷新页面时会出现问题。我不会删除此答案,因为它可以帮助其他人看到工作解决方案与此解决方案之间的差异。

pagre refresh是什么意思?我的意思是,每次用户通过单击链接从test.php页面返回时,都应该调用它。然后,不应该在demo.php页面重新加载时调用它。您只需通过质询。只需检查querystring是否已设置,并在body标签上添加
onLoad
属性!thanx dillen,但这是在页面重新加载时也调用的函数。当用户点击链接时,我需要调用onload函数。当用户返回test.php页面并再次点击时,无论用户点击链接多少次,它都会被调用?我想这是您现在想要的方式。@Dillen我使用您的代码:window.onload=function(){if(document.location.href.indexOf(#noCall”)=-1){//URL中不存在哈希标记吗?警报(“未单击链接时调用的事件”);//事件名为document.location.href=document.location.href.split(“#noCall”)['0']+“#”;//从哈希中删除noCall以便重新加载页面}否则{alert('test');};但是当我来的时候,单击也会在每次测试都是警报时重新加载页面。Thanx Dillen它是resolve.ur script.window.onload=function()中的一点修改{if(window.location.href.indexOf(“#noCall”)==-1){//URL中不存在哈希标记吗?警报(“未单击链接时调用的事件”);//调用的事件}else{window.location.hash='';};@DillenMeijboom噢,是的,谢谢你的更正,我不太理解这个问题,谢谢你的评论。