摘要:進入域后判斷是移動端還是端顯示不同的頁面很多情況下,一個應用會有和移動端兩個版本,而這兩個版本因為差別大,內容多,所以不能用響應式開發但是多帶帶開發,而域名只有一個,用戶進入域后直接返回對應設備的應用,做法主要有兩種前端判斷并跳轉進入一個應用
進入域后判斷是移動端還是pc端顯示不同的頁面(PC/MOBILE)
很多情況下,一個應用會有PC和移動端兩個版本,而這兩個版本因為差別大,內容多,所以不能用響應式開發但是多帶帶開發,而域名只有一個,用戶進入域后直接返回對應設備的應用,做法主要有兩種:
前端判斷并跳轉
進入一個應用或者一個空白頁面后,通過navigator.userAgent來判斷用戶訪問的設備類型,進行跳轉
后端判斷并響應對應的應用
用戶地址欄進入域的時候,服務器能接收到請求頭上包含的userAgent信息,判斷之后返回對應應用
function foo(){ getName = function(){console.log(1)} return this } foo.getName = function(){console.log(2)} foo.prototype.getName = function(){console.log(3)} var getName = function(){console.log(4)} function getName(){console.log(5)} foo.getName()//2 //foo是一個函數,也可以說是一個對象,所以它也可以掛載一些屬性和方法,18行在其上掛載了一個getName方法 //執行的結果是 getName()//4 //21行有一個全局函數,全局函數聲明提前后被20行的getName覆蓋,所以輸出4 foo().getName()//1 //foo()執行完成后,將全局的getName也就是window.getName給更改后返回this,而在這里this執行的就是window,所以最后執行的就是window.getName,所以輸出1 getName()//1 //在上面已經更改全局的getName,所以依然是1 new foo.getName()//2 //new 操作符在實例化構造器的時候,會執行構造器函數,也就是說,foo.getName會執行,輸出2 new foo().getName()//3 //new操作符的優先級較高,所以會先new foo()得到一個實例,然后再執行實例的getName方法,這個時候,實例的構造器里沒有getName方法,就會執行構造器原型上的getName方法 new new foo().getName()//3 //先執行new foo()得到一個實例,然后在new 這個實例的getName方法,這個時候會執行這個方法,所以輸出3 //除了本地對象的方法,其他的函數都能new
文章版權歸作者所有,未經允許請勿轉載,若此文章存在違規行為,您可以聯系管理員刪除。
轉載請注明本文地址:http://specialneedsforspecialkids.com/yun/92290.html
摘要:接下來做端一般都寫手機最大也就先隱藏手機菜單和按鈕優先級問題解決方法直接使用用谷歌開發者工具查看優先級里面的垂直居中再把寫成布局只要改成里面的子項目就變成一行了菜單導航導航導航導航導航到航導航導航導航導航方法切換元素的可見狀態。 CSS5:移動端頁面(響應式) 如果手機端和PC端頁面差別很大,就不要寫響應式,不要寫@media 就直接將兩個頁面拆開成兩個文件就可以了.關于判斷是手機端你...
摘要:給網站加谷歌翻譯,搜索引擎一搜一大堆,這里不再贅述。,原生,并且谷歌顯示在右側。,為什么把中的改成了理由同,為什么的前面加了個符號這里正是谷歌翻譯的一個,猜測和中的某些正則匹配有關。 給網站加谷歌翻譯,搜索引擎一搜一大堆,這里不再贅述。只貼一個申請谷歌翻譯的一個地址:https://translate.google.com/...和一段代碼: 下面是官方給出的代碼: function...
閱讀 2858·2021-09-22 15:43
閱讀 4717·2021-09-06 15:02
閱讀 852·2019-08-29 13:55
閱讀 1684·2019-08-29 12:58
閱讀 3068·2019-08-29 12:38
閱讀 1213·2019-08-26 12:20
閱讀 2270·2019-08-26 12:12
閱讀 3318·2019-08-23 18:35