สำหรับ iOS google chrome เมื่อผู้ใช้กดปุ่ม "ขอไซต์บนเดสก์ท็อป" เบราว์เซอร์จะทำอย่างไรเพื่อพยายามเปิดไซต์เดสก์ท็อป ฉันนึกภาพส่วนหัวบางอย่างในคำขอที่ไซต์กำลังมองหาหรืออะไรที่คล้ายกัน
สำหรับ iOS google chrome เมื่อผู้ใช้กดปุ่ม "ขอไซต์บนเดสก์ท็อป" เบราว์เซอร์จะทำอย่างไรเพื่อพยายามเปิดไซต์เดสก์ท็อป ฉันนึกภาพส่วนหัวบางอย่างในคำขอที่ไซต์กำลังมองหาหรืออะไรที่คล้ายกัน
คำตอบ:
ฉันคิดว่าความแตกต่างเพียงอย่างเดียวคือUser-Agent:
ส่วนหัวในคำขอ
นี่คือส่วนหัว User-Agent ที่ Chrome ส่งมาบนอุปกรณ์ Android ของฉัน:
Mozilla/5.0 (Linux; Android 4.0.4; Galaxy Nexus Build/IMM76K) AppleWebKit/535.19 (KHTML, like Gecko) Chrome/18.0.1025.166 Mobile Safari/535.19
Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/535.19 (KHTML, like Gecko) Chrome/18.0.1025.45 Safari/535.19
สังเกตคำว่า "มือถือ" ในคำแรกและยังมีการกล่าวถึงระบบและอุปกรณ์ Android ด้วยการตรวจสอบสิ่งเหล่านี้ฉันเห็นว่ามันให้ข้อมูลเท็จเช่น X11 และ x86_64 เพื่อให้ตรงกับค่าที่ส่งโดยเดสก์ท็อป Linux เวอร์ชันของ โครเมียม.
เพียงต้องการชี้ให้เห็นว่า Chrome ไม่เพียง แต่เปลี่ยนแปลงUser-Agent
แต่ยังละเว้นเมตาแท็กของวิวพอร์ตเดิมหากคุณ "ขอไซต์เดสก์ท็อป" ดังนั้นจึงไม่จำเป็นต้องดมกลิ่นUser-Agent
อีกต่อไปและคุณสามารถพึ่งพาการเปลี่ยนแปลงวิวพอร์ตได้เนื่องจากไซต์ที่ตอบสนองส่วนใหญ่จะทำโดยอัตโนมัติ ดูการเปลี่ยนแปลงนี้สำหรับการอ้างอิงเพิ่มเติม
ความแตกต่างเล็กน้อยอีกประการหนึ่งคือคำขอดูเหมือนว่าจะเป็น URL สุดท้ายที่ป้อนโดยเจตนาก่อนที่จะมีกรรมการใหม่ย้ายไป ตัวอย่างเช่น:
ระบุ: somesite.com สูดดมตัวแทนเห็น Android และทำ document.location + = "/ m";
จากนั้น:เบราว์เซอร์จะมี URL เป็น somesite.com/m
แต่:หากคุณ "ขอไซต์เดสก์ท็อป" ระบบจะเปลี่ยน User-Agent และขอใหม่จาก somesite.com
เว้นแต่:คุณได้เข้าไปที่ URL บนอุปกรณ์เคลื่อนที่ของ somesite.com/m โดยตรงตั้งแต่แรกซึ่งในกรณีนี้ก็แค่โหลด somesite.com/m ซ้ำ
ฉันคาดหวังว่าสิ่งนี้ใช้ได้กับการเปลี่ยนเส้นทาง HTTP 301 และ 302 ฉันรู้ว่ามันใช้ได้กับการเปลี่ยนแปลง document.location (อย่างน้อยตามที่อธิบายไว้) และคาดเดาได้ว่ามันใช้ได้กับการรีเฟรช <meta>
ข้อมูลโค้ดจาวาสคริปต์นี้จะทำสิ่งเดียวกันได้อย่างมีประสิทธิภาพ:
function requestDesktopSite() {
document.getElementsByTagName('meta')['viewport'].content='min-width: 980px;';
}
<button onclick="requestDesktopSite()">Request Desktop Site</button>