Tôi biết điều này có một câu trả lời chấp nhận được, nhưng tôi đã gặp phải tình huống clientWidth
không hoạt động, vì iPhone (ít nhất là của tôi) đã trả về 980, chứ không phải 320, vì vậy tôi đã sử dụng window.screen.width
. Tôi đã làm việc trên trang web hiện tại, được thực hiện "đáp ứng" và cần buộc các trình duyệt lớn hơn sử dụng chế độ xem meta khác nhau.
Hy vọng điều này sẽ giúp được ai đó, nó có thể không hoàn hảo, nhưng nó hoạt động trong thử nghiệm của tôi trên iOs và Android.
//sweet hack to set meta viewport for desktop sites squeezing down to mobile that are big and have a fixed width
//first see if they have window.screen.width avail
(function() {
if (window.screen.width)
{
var setViewport = {
//smaller devices
phone: 'width=device-width,initial-scale=1,maximum-scale=1,user-scalable=no',
//bigger ones, be sure to set width to the needed and likely hardcoded width of your site at large breakpoints
other: 'width=1045,user-scalable=yes',
//current browser width
widthDevice: window.screen.width,
//your css breakpoint for mobile, etc. non-mobile first
widthMin: 560,
//add the tag based on above vars and environment
setMeta: function () {
var params = (this.widthDevice <= this.widthMin) ? this.phone : this.other;
var head = document.getElementsByTagName("head")[0];
var viewport = document.createElement('meta');
viewport.setAttribute('name','viewport');
viewport.setAttribute('content',params);
head.appendChild(viewport);
}
}
//call it
setViewport.setMeta();
}
}).call(this);