Câu hỏi Tùy chọn “Yêu cầu trang web trên máy tính để bàn” của Chrome hoạt động như thế nào?


Đối với google chrome của iOS, khi người dùng truy cập vào nút "Yêu cầu trang web dành cho máy tính để bàn", trình duyệt sẽ làm gì để cố gắng mang đến một trang web dành cho máy tính để bàn? Tôi tưởng tượng một số loại tiêu đề trên yêu cầu mà các trang web đang tìm kiếm, hoặc một cái gì đó tương tự?


76
2017-07-28 15:47


gốc




Các câu trả lời:


Tôi nghĩ sự khác biệt duy nhất là User-Agent: tiêu đề trong yêu cầu.

Dưới đây là các tiêu đề Tác nhân người dùng được Chrome gửi trên thiết bị Android của tôi:

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

Chú ý từ “Mobile” trong phần đầu tiên, và cũng đề cập đến hệ thống và thiết bị Android, kiểm tra chúng, tôi thấy rằng nó cũng cung cấp thông tin sai - cụ thể là X11 và x86_64 - để so khớp chặt chẽ giá trị được gửi bởi phiên bản Desktop Linux của Chrome.


53
2017-07-28 16:19



Một tiêu đề riêng biệt sẽ rất tuyệt vời. Đại lý người dùng đánh hơi là khủng khiếp. - Mu Mind
Tôi đồng ý. Đôi khi việc phát hiện tự động và chuyển hướng được thực hiện bởi một số trang web là cực kỳ phản tác dụng và tình tiết tăng nặng. - dsh
Một giải pháp tốt hơn là phát hiện kích thước, giao diện và khả năng của thiết bị. Truy vấn phương tiện CSS là một bước đi đúng hướng. - Brad
Tính năng này không được thực hiện bởi một công tắc và làm mới UA đơn giản. Sự thật của vấn đề là hầu hết các trang web di động sẽ KHÔNG chuyển về máy tính để bàn nếu được tải bằng chuỗi UA trên máy tính để bàn. Vậy thì Safari sử dụng yêu cầu ban đầu của bạn? Không. Dường như nó hoạt động ngay cả khi ban đầu bạn đã nhập URL cho trang web dành cho thiết bị di động. Tôi không biết làm thế nào nó được thực hiện bởi vì tên của các phiên bản di động là không có nghĩa là tiêu chuẩn hóa, nhưng có một cái gì đó thông minh hơn xảy ra hơn một thay đổi UA đơn giản. - Andrew G


Một khác biệt nhỏ khác là yêu cầu dường như đã đến URL được nhập cố ý cuối cùng trước khi bất kỳ giám đốc điều hành nào chuyển nó. Ví dụ:

Được: somesite.com sniffs các đại lý, thấy Android, và không một document.location + = "/ m";

Sau đó: trình duyệt sẽ có URL là somesite.com/m

Nhưng: nếu bạn "Yêu cầu trang web dành cho máy tính để bàn", nó sẽ thay đổi Tác nhân người dùng và yêu cầu lại từ somesite.com

Trừ khi: bạn đã truy cập trực tiếp vào URL di động của somesite.com/m ngay từ đầu, trong trường hợp đó nó chỉ tải lại somesite.com/m.

Tôi hy vọng rằng điều này làm việc với chuyển hướng HTTP 301 và 302, tôi biết nó hoạt động với các thay đổi document.location (ít nhất là được mô tả), và sẽ suy đoán rằng nó hoạt động với <meta> làm mới.


12
2018-01-31 23:59



Bạn có căn cứ câu trả lời của mình từ điều này? - Keale


Chỉ muốn chỉ ra rằng Chrome hiện không chỉ thay đổi User-Agent nhưng cũng bỏ qua thẻ meta chế độ xem ban đầu nếu bạn "Yêu cầu trang web dành cho máy tính để bàn". Vì vậy, nó sẽ không cần thiết để đánh hơi User-Agent và bạn có thể dựa vào thay đổi chế độ xem vì hầu hết các trang web đáp ứng sẽ tự động thực hiện. Xem thay đổi này để tham khảo thêm.


10
2017-08-15 10:14



Cảm ơn vì điều đó. trang web rất đơn giản của riêng tôi hoạt động rất khác nhau khi nó không được nhấp và tôi không thể hiểu tại sao vì tôi không làm gì hơn là truy vấn phương tiện trong CSS. - R Reveley


Đoạn mã javascript này sẽ thực hiện tương tự như sau:

function requestDesktopSite() {
    document.getElementsByTagName('meta')['viewport'].content='min-width: 980px;';
}
<button onclick="requestDesktopSite()">Request Desktop Site</button>


-3
2017-09-06 15:38