javascript - 網易云音樂是如何實現a標簽href有值不跳轉的?
問題描述
比如這個頁面http://music.163.com/#/song?i...點擊下面的歌名,頁面沒有刷新也沒跳轉,是如何實現的。
問題解答
回答1:http://music.163.com/#/song?i...#號后面的東西叫片段,也可以叫錨點。 這東西不會刷新瀏覽器,也不會提交一個請求給服務器,但是可以生成一條瀏覽器記錄。獲取#號后面的值是window.location.hash所以只需要監控這個hash值的變化就可以了onhashchange
回答2:window.location.hash
回答3:iframe
回答4:估計你是新手吧... 多看源代碼吖
_onAnchorClick = function(_event){//截獲所有<a>標簽的點擊事件,自定義頁面的跳轉 _event = _event||window.event; var _el = _event.target||_event.srcElement, _base = location.protocol+’//’+location.host;while(_el&&_el!=document){// ... }}_addEvent(document,’click’,_onAnchorClick);
其實就是用了 Event.preventDefault
<a >我想跳轉到百度搜索哆啦A夢</a> <script src='https://code.jquery.com/jquery-3.1.0.js'></script> <script>$(’a’).on(’click’, function (event) { event.preventDefault(); }) </script>回答5:
頁面其實就是沒有刷新,你知道'#target',可以將你的頁面跳轉到target的位置,這個其實和這個差不多,進一步你可以了解js的hash(樓上說的),還有路由
相關文章:
1. javascript - h5 video層級太高導致浮在div上面,如何解決?2. javascript - 如何獲取未來元素的父元素在頁面中所有相同元素中是第幾個?3. angular.js - angular 2 應用如何進行打包?如何使用gulp打包?4. javascript - 圖片無法正常加載5. python中怎么對列表以區間進行統計?6. cordova - myeclipse2014 導入android項目報錯7. javascript - Ajax加載Json時,移動端頁面向左上角縮小一截兒,加載完成后才正常顯示,這該如何解決?8. mysql ER_BAD_DB_ERROR: Unknown database ’test’9. mysql - 記得以前在哪里看過一個估算時間的網站10. html5 - 在微信上掃二維碼看到有趣的h5頁面,怎樣才可以看到它的代碼呢?
