前端基础/html/javascript

为何点击删除时报错

![img](https://img-mid.csdnimg.cn/release/static/image/mid/ask/863152145096145.png "#left")

```html
<!DOCTYPE html>
<html lang="en">

<head>
    <meta charset="UTF-8">
    <title>deptlist</title>
</head>

<body>
    <script type="text/javascript">
        window.onload = function () {
            function del(deptno) {
                if (window.confirm("亲,这条记录会被删除哦?")) {
                    alert('正在删除数据');
                    // 在JS中发生请求给服务器
                    // document.location.href = "/oa/dept/delete?deptno="+deptno;
                }
            }
        }
    </script>
    <h3 align="center">部门表</h3>
    <hr>
    <table border="1" width="50%" align="center">
        <tr>
            <th>部门编号</th>
            <th>部门名称</th>
            <th>部门位置</th>
            <th>操作</th>
        </tr>
        <tr>
            <td>10</td>
            <td>xiaoshoubu</td>
            <td>beijing</td>
            <td>
                <a href="modify.html">修改</a>
                <a href="javascript:void(0)" onclick="del(10)">删除</a>
                <a href="detail.html">详情</a>
            </td>
        </tr>
        <tr>
            <td>20</td>
            <td>jishubu</td>
            <td>shanghai</td>
            <td>
                <a href="modify.html">修改</a>
                <a href="javascript:void(0)" onclick="del(10)">删除</a>
                <a href="detail.html">详情</a>
            </td>
        </tr>
        <tr>
            <td>30</td>
            <td>yangfabu</td>
            <td>guangzhou</td>
            <td>
                <a href="modify.html">修改</a>
                <a href="javascript:void(0)" onclick="del(10)">删除</a>
                <a href="detail.html">详情</a>
            </td>
        </tr>
        <tr>
            <td>40</td>
            <td>meitibu</td>
            <td>shengzhen</td>
            <td>
                <a href="modify.html">修改</a>
                <a href="javascript:void(0)" onclick="del(10)">删除</a>
                <a href="detail.html">详情</a>
            </td>
        </tr>
    </table>
    <hr>
    <a href="add.html">新增部门</a>
</body>

</html>

```

其实这就是作用域的问题,当页面加载完毕,del()函数的执行环境会发生变化,不是在window.onload方法下,而是在全局执行环境中,即window。

而根据JS的作用域链,在函数外部是不能访问到函数内部的变量和方法的,window.onload对于window来说只是局部的,所以会提示turn没有定义。

根据您提供的的问题描述,可以看出您在点击删除按钮时遇到了错误。然而,您提供的信息中并没有包含具体的错误信息或报错代码,这让我很难准确地确定问题所在。但根据您的描述,我可以提供一些可能导致该问题的常见原因和解决方案:

  • 1.脚本错误:检查您的页面中是否有任何 JavaScript 错误。打开浏览器的开发者工具(通常按 F12 键或右键点击页面然后选择“检查元素”),切换到“控制台 ”选项卡,查看是否有任何错误消息。这些错误消息可能会提供有关导致问题的原因的线索。
  • 2.权限问题:确保您具有删除数据的权限。如果您的用户角色或权限不足以删除数据,则可能会引发错误。
  • 3.服务器请求问题:检查您的代码中是否有正确的向服务器发送删除请求的逻辑。根据您的描述,您注释掉了一行代码,这行代码可能包含向服务器发送请求的逻辑。请确保您已正确恢复这行代码,以便请求能够发送到服务器。
  • 4.URL编码问题:检查您用于构建请求 URL 的参数。确保您正确编码和转义任何特殊字符,以避免在请求中产生错误。
  • 5.CORS(跨源资源共享)问题:如果您的网页和服务器不在同一个域,则可能会遇到 CORS 问题。确保您的服务器正确配置以允许来自网页的跨源请求。

这些只是一些可能导致问题的常见原因,具体原因可能因您的特定情况而异。如果以上解决方案均无法解决问题,请提供更多详细信息,例如具体的错误消息、代码片段或服务器响应,以便我能够更好地帮助您解决问题。