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衝突的問題尚未有個正式說法,第二種方法爲什麼沒有衝突。大佬要是看見此文章,感謝給予回答,歡迎討論~

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