未捕获的 ReferenceError:<function> 未在 HTMLInputElement.onclick 中定义

新手上路,请多包涵

我正在尝试从我的 html 页面调用一个简单的 javascript 函数。 javascript 函数将使用“lib.js”文件解密,并发出同样的警报。

未捕获的 ReferenceError:decryptfun 未在 HTMLInputElement.onclick 中定义(test.html:18)

下面是我使用的唯一文件(以及其他依赖库文件)。

 <!DOCTYPE html>
<html>
<head>
<script type="text/javascript" src="lib.js">
function decryptfun() {
    var pass = "hjubjbjhdgyuwj";
    var encrtoken = "abcdefghijklmn";

    var p = lib.decrypt(encrtoken, atob(pass));
    }
    alert(p);
</script>
</head>

<body>
<h1>Decrypt Operation</h1>
<input type="button" onclick="decryptfun()" value="Click">
</body>
</html>

我尝试了在 Stackoverflow 上针对同一类型问题提供的其他建议,但没有成功。谁能帮我找出问题的原因?

原文由 mbvee 发布,翻译遵循 CC BY-SA 4.0 许可协议

阅读 280
2 个回答

你的错误是因为你已经在里面定义了你的函数:

 <script type="text/javascript" src="lib.js">

正确的方法是先关闭该脚本标签,如下所示:

 <script type="text/javascript" src="lib.js"></script>

然后再次定义脚本标签来定义函数,如下所示:

 <script>
function(){
    //body of function
};
</script>

 <script type="text/javascript" src="lib.js"></script>
<script>
  function decryptfun() {
    var pass = "hjubjbjhdgyuwj";
    var encrtoken = "abcdefghijklmn";

    //var p = lib.decrypt(encrtoken, atob(pass)); //USE THIS IN YOUR CASE
    var p = "test"; //just for example
    alert(p);
  }
</script>
<h1>Decrypt Operation</h1>
<input type="button" onclick="decryptfun()" value="Click">

原文由 Shakti Phartiyal 发布,翻译遵循 CC BY-SA 3.0 许可协议

我的问题是我在里面定义我的功能

<script>
    $(document).ready(function () {
        function myFunction() ....
    })
</script>

当直接在 script 标签中定义时,它工作正常

<script>
     function myFunction() ....
</script>

原文由 Rami Alloush 发布,翻译遵循 CC BY-SA 4.0 许可协议

撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
推荐问题