a标签中使用onclick提示function未定义

<a href="javascript:;" onclick="text()">leave a message</a>

今天做东西的时候,发现在a标签中使用onclick触发函数,一直报错,显示function未定义,开始还以为是我太长时间没有写代码,不会写了。
后面反复操作和百度。发现是function命名的问题。我找到的一种说法是:
函数名不能和页面的某个标签的id名相同。一些浏览器可以通过在js代码中指定ID访问节点元素,然后定义的函数就会被DOM中的元素覆盖了。您需要重命名函数名称或元素ID。 这个说法是不能解决我的问题的,我由此推测是原生代码中用了text关键词,所以定义函数时应该避开这些关键词。
下面说一下解决方法。
1、改变函数命名,直接全改,或者在原名字前加下划线 例:_text。
2、<a href="javascript:text();">leave a message</a>,这个方法不太严谨,其原理是在JavaScript:后面会执行js的代码。但是有个问题:为什么这个名字没有发生冲突现象呢,还是我前面的说法有误。我觉得从a标签的根本来看
<a>标签的href属性,其中href是hypertext reference的缩略词,用于设定链接地址。链接地址必须为url地址,如果没有给出具体路径,则默认路径和当前页的路径相同。
有没有一种说法是这两种代码形式的运行方法不同。
<a href="javascript:text();">leave a message</a>直接指向了引入的js代码块中的方法。从而避免了和未知冲突的遇见。但是这种方法是不提倡的
,不仅暴露了你使用的方法,而且也是不严谨的, javascript: 是一个伪协议,其他的伪协议还有 mail: tel: file: 等等。javascript:是表示在触发默认动作时,执行一段JavaScript代码

在这里插入图片描述
3、还有一种方法是
window.editServer= function(value){

},我的用着没效果,见好多文章都是用的这个方法,那就把它挂上吧

就先写到这吧,本文章参考:https://blog.csdn.net/chenchunlin526/article/details/77346049
上面关于text冲突的问题尚未有个正式说法,第二种方法为什么没有冲突。大佬要是看见此文章,感谢给予回答,欢迎讨论~

  • 3
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
如果在 onclick 事件以变量名称传递数组,而函数却无法访问到这个变量,那么很可能是因为变量作用域的问题。如果一个变量在函数外部定义,那么它是全局变量,可以在任何地方访问。但是如果变量在函数内部定义,那么它只能在该函数内部使用。 如果你在 onclick 事件以变量名称传递数组,而该变量在函数外部定义,那么你可以直接在函数使用它。例如: ```html <button onclick="myFunction()">Click me</button> <script> var fruits = ['apple', 'banana', 'orange']; function myFunction() { // 在这里使用全局变量 fruits console.log(fruits[0]); // 输出 "apple" console.log(fruits[1]); // 输出 "banana" console.log(fruits[2]); // 输出 "orange" } </script> ``` 在上面的示例,我们在全局作用域定义了一个名为 fruits 的数组变量,并在 onclick 事件调用了一个名为 myFunction函数。在函数,我们直接使用了全局变量 fruits,并将它们输出到控制台。 如果你在函数内部定义了一个变量,并将数组作为它的值,那么在 onclick 事件传递这个变量的名称将无法访问它。例如: ```html <button onclick="myFunction()">Click me</button> <script> function myFunction() { var fruits = ['apple', 'banana', 'orange']; // 在这里使用局部变量 fruits console.log(fruits[0]); // 输出 "apple" console.log(fruits[1]); // 输出 "banana" console.log(fruits[2]); // 输出 "orange" } </script> ``` 在上面的示例,我们在函数内部定义了一个名为 fruits 的数组变量,并在 onclick 事件调用了名为 myFunction函数。由于 fruits 变量是在函数内部定义的,它只能在函数内部使用。因此,我们无法在 onclick 事件通过变量名称来访问它。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值