关于a标签不能调用js方法的小细节,你注意到了么?

摘要:
不,我已经用PHP调用了它?

在我们做后台删除的时候,当点击删除标签时,你希望弹出一个友好的提示框!比如这样:

关于a标签不能调用js方法的小细节,你注意到了么?第1张

那代码应该怎样写呢?向下面这样?

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <script>
        window.onload=function () {
            function confirmdelete(id) {
                return  window.confirm("你确定要删除吗?");
            }
        }

    </script>
</head>
<body>

</body>
<?php
   echo "<a onclick='confirmdelete(2)'>删除</a>";
?>

你会发现会发生这样一个错误:

关于a标签不能调用js方法的小细节,你注意到了么?第2张

该函数没有被使用?不应该啊,我在php里面不是已经调用了么?

注意:

关于a标签不能调用js方法的小细节,你注意到了么?第3张

想必写过前端的人都知道这个方法是在页面全部加载完成之后执行,那么问题就来了,php的执行顺序是先于js的,所以当执行php的时候,发现a标签里面的方法并不存在,因为此刻js还没有被执行,所以就导致了php a标签调用js的时候没有反应这种情况了。

那么代码变成这样呢?

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <script>

            function confirmdelete(id) {
                return  window.confirm("你确定要删除吗?");
            }
    </script>
</head>
<body>

</body>
<?php
   echo "<a onclick='return confirmdelete(2)'>删除</a>";
?>

结果是成功执行!有人说不对啊,你不是说php的执行顺序要先于js么,这个和上面没什么区别啊。

那么此刻就要注意了,有了window.onload这个方法约束后,该js是最后执行,那么 当去掉这个约束,你会发现这个函数关于a标签不能调用js方法的小细节,你注意到了么?第4张

只是一个声明,在js当中,对于只是声明的函数,它会最先编译,所以这时候当执行到php的a标签时,因为它要调用的函数已经预先编译好了,所以就能够调用。

免责声明:文章转载自《关于a标签不能调用js方法的小细节,你注意到了么?》仅用于学习参考。如对内容有疑问,请及时联系本站处理。

上篇一种不错的Jar打包方式护眼营养补充剂之叶黄素下篇

宿迁高防,2C2G15M,22元/月;香港BGP,2C5G5M,25元/月 雨云优惠码:MjYwNzM=

相关文章

微信内 H5 页面自定义分享

起源: 最近公司在做一个活动的h5页面,在微信内打开时需要进行微信授权,然后后端会重定向到这个页面并且携带了一些参数(openid等)。问题是点击微信的原生分享时,会把携带的这些参数一起分享出去,等于把用户信息泄露了。所以为了解决这个问题,只能实现自定义微信分享的功能,可以自定义分享的地址、标题、图标还有简介。 事先需要做的: 1.微信公众号:必须是经过...

JS 获取网页内容高度 和 网页可视高度 支持IE 6789 Firefox Chrome 【转】

function getClientHeight() { //可见高 var clientHeight=document.body.clientHeight;//其它浏览器默认值 if(navigator.userAgent.indexOf("MSIE 6.0")!=-1) { clientHeight=do...

使用css将网页变成黑白色

其实将整个网页全局变色,无非就是三种,css直接设置,添加svg滤镜,通过js遍历所有标签更改颜色,于是 1、css 直接编辑样式,然后在需要应用的地方设置class 1 .gray { 2 -webkit-filter: grayscale(100%); 3 -moz-filter: grayscale(100%); 4 -ms...

如何用JS判断网页中某个id的网页元素是否存在(两种写法 jQuery写法和原始写法:

在传统的Javascript里,当我们对某个页面元素进行某种操作前,最好先判断这个元素是否存在。原bai因是对一个不存在的元素进行操作是不允许的。例如:document.getElementById("someID").innerText("hi");如果ID为"someID"的元素不存在,我们将得到Javascript运行错误:document.getE...

抓取js动态生成的数据案列

本文博客采摘https://www.cnblogs.com/bobo-zhang/p/10561617.html?tdsourcetag=s_pcqq_aiomsg谨防转载 需求:爬取https://www.xuexi.cn/f997e76a890b0e5a053c57b19f468436/018d244441062d8916dd472a4c6a0a0b....

原生JS 和 JQ 获取滚动条的高度,以及距离顶部的高度

JQ:相对比较简便 获取浏览器显示区域(可视区域)的高度 : $(window).height(); 获取浏览器显示区域(可视区域)的宽度 : $(window).width(); 获取页面的文档高度 $(document).height(); 获取页面的文档宽度 : $(document).width(); 浏览器当前窗口...