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冲突的问题尚未有个正式说法,第二种方法为什么没有冲突。大佬要是看见此文章,感谢给予回答,欢迎讨论~

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章