簡體   English   中英

制作非JavaScript的#標簽JavaScript鏈接詞

[英]Make a #-tag javascript link word for non javascript

使用以下教程,我希望我的網站使用AJAX加載內容(但也希望能夠使用后退按鈕等): http : //www.queness.com/post/328/a-simple- Ajax驅動-網站與- jqueryphp

當然,如果有人禁用了javascript,則該網站也可以正常工作(不使用Ajax)。

但是,當啟用JavaScript的用戶向未啟用JavaScript的用戶發送鏈接時,就會出現問題。 由於禁用了javascript,它將無法正確處理#標簽,而只會轉到首頁(因此,無法直接將頁面從javascript用戶鏈接到非javascript用戶)。 有沒有一種方法可以解決此問題(最好是php或htacces)。

HTML5為我們提供了無需刷新頁面即可更改URL的方法https://developer.mozilla.org/en/DOM/Manipulating_the_browser_history#Adding_and_modifying_history_entries

這意味着您可以在不刷新頁面的情況下更新某些內容,但仍為用戶提供一個他們可以添加書簽或發送給其他人的網址。 只要您在這些位置有頁面,或者正在使用mod_rewrite或類似內容捕獲它們,這些URL就可以在沒有JavaScript的情況下工作。

https://github.com/browserstate/history.js是一個很棒的小插件,如果瀏覽器支持,它將使用HTML5歷史記錄,否則(Internet Explorer)它將更改URL的哈希。

基本上,三個步驟:

  • 正常編碼您的“ a”標簽: <a href='about'>About us</a>
  • 在您的JavaScript代碼中,攔截<a>標記上的所有click事件,然后導航至# + this.href 因此,當他們單擊上面的URL時,您導航到site.com/#about而不是site.com/about
  • 在您的JavaScript代碼中,有一個計時器函數,該函數從當前位置讀取哈希值並通過ajax加載相應的url(刪除了#)

由於您照常編寫html代碼,因此非js用戶(更重要的是搜索引擎的bot)仍然可以完全訪問該網站。

針對這些評論,我可以提出以下建議:

  • 通過javascript將您的主頁從site.com重定向到site.com/js/
  • 單擊<a href='about'>時,導航至site.com/js/#about
  • 在“ js”頁面上,為非js用戶提供類似<a id=about href="/about">click here</a>功能

為什么不正常地構建您的應用程序,然后在頂部添加AJAX,而不是反過來又為您自己做更多的工作呢?

問問自己,為什么需要AJAX頁面轉換? 您的應用程序實際上需要它們嗎,還是僅僅因為您在其他網站(例如Twitter)上看到過它?

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM