[英]Redirect to mobile website every time
我使用的是我看到的典型的移動網站重定向腳本,並且效果很好。 我在移動網站上也有一個鏈接,可以讓他們根據需要查看常規網站,並且效果也不錯。
這是我的情況和問題。 他們轉到我的移動網站,然后單擊鏈接轉到常規網站。 然后他們去一個完全不同的站點。 如果他們再次輸入我的URL進入我的網站,它將帶他們到常規網站而不是移動網站。 他們每次單獨訪問我的網站時,都希望將他們帶到手機上。 誰能在這方面做得更好? 謝謝!
這是我在常規網站上的腳本:
<script type="text/javascript">
if (document.location.search.indexOf("skipmobile") >= 0) {
document.cookie = "skipmobile=1";
} else if ((document.location.hostname.match(/\.mobi$/) || screen.width < 699) && document.cookie.indexOf("skipmobile") == -1) {
document.location = "m/";
}
這是我的移動網站上的鏈接:
<a href="http://www.mywebsite.com/index.html?skipmobile=1">View Full Website</a>
讓我們分解您的JavaScript代碼。
if (document.location.search.indexOf("skipmobile") >= 0) {
如果URL包含字符串“ skipmobile”,則條件>= 0
為true。 請注意,將值設置為什么並不重要。 它只是在尋找字符串“ skipmobile”的存在。 當該字符串位於URL中時,將設置一個cookie document.cookie = "skipmobile=1"
。 如果找不到字符串, indexOf
將返回-1
。
else if ((document.location.hostname.match(/\.mobi$/) || screen.width < 699) && document.cookie.indexOf("skipmobile") == -1)
讓我們將其分解成碎片。 首先, ||
表示OR, &&
表示AND。 因此, if document.location.hostname.match(/\\.mobi$/)
使用正則表達式從URL的主機名末尾搜索字符串“ .mobi”。 因此,www.yoursite.mobi會匹配,但www.yoursite.com不會匹配。 然后我們有OR條件|| screen.width < 699
|| screen.width < 699
。 因此,如果主機名以“ .mobi”結尾或屏幕尺寸的寬度小於“ 699”像素,則此條件的第一部分為true。
if語句的下一部分是document.cookie.indexOf("skipmobile") == -1
。 這正在檢查是否存在不存在名為“ skipmobile”的cookie。 注意-1
。 因此,它正在檢查未設置cookie。
所以把所有的一起,如果主機名“的.mobi”結尾或屏幕寬度小於‘skipmobile’尚未設置,那么直接在瀏覽器的移動網站,‘M /’,‘699’的像素和餅干,使用此代碼document.location = "m/"
。
看起來該代碼正在檢查Cookie,以確定移動網站或完整網站。 因此,當他們離開並返回您的站點時,它可以“記住”設置。
設置Cookie時-特別不要設置有效期限。 通常將其稱為“會話cookie”。 當瀏覽器關閉時,cookie將自動過期。
或者更好...
很簡單,就是根本不設置cookie。 我沒有在代碼中的任何地方看到cookie的實際存在執行任何操作……僅cookie的缺失很重要。
此外,如果您不設置cookie,那么絕對不會有cookie。 為什么浪費代碼尋找它?
試試這個...
<script type="text/javascript">
if (document.location.search.indexOf("skipmobile") >= 0)
{
document.location = "m/";
} else if ((document.location.hostname.match(/\.mobi$/) || screen.width < 699))
{
document.location = "m/";
}
</script>
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.