【发布时间】:2018-12-27 03:13:14
【问题描述】:
https://stackblitz.com/edit/js-meta-viewport
在 Chrome 调试器中,当我点击“可以缩放”时,我可以看到元标记正在更新,但无法在移动设备(Nexus 5 (Chrome 70))上进行缩放。
最终目标是在移动设备上动态允许和禁止在同一个 spa 中缩放。
编辑:
我已经成功地从
切换元视口标签<meta name="viewport" content="width=device-width, initial-scale=1.0, maximum-scale=10.0, minimum-scale=0.0, user-scalable=yes">
到
<meta name="viewport" content="width=device-width, initial-scale=1.0, maximum-scale=1.0, minimum-scale=1.0, user-scalable=no">
还有不包括最小尺度的变体
然后返回,但这似乎没有影响或改变行为,特别是用户在我的 Nexus 5 (Chrome 70) 上“缩放”的能力。
我尝试分配viewportTag.content = content,调用viewportTag.setAttribute('content', content),然后重新渲染document.head.removeChild(),然后再渲染document.head.appendChild()。再次全部成功切换标记但没有任何行为
分配:https://stackblitz.com/edit/js-meta-viewport
setAttribute:https://stackblitz.com/edit/js-meta-viewport-answer (https://stackoverflow.com/a/53899867/6656422)
重绘:https://stackblitz.com/edit/js-meta-viewport-redraw
更新:
这里的解决方案有效 https://stackblitz.com/edit/js-meta-viewport-answer (https://stackoverflow.com/a/53899867/6656422) 但我不明白为什么,它不是 setAttribute() 因为 https://stackblitz.com/edit/js-meta-viewport-setattribute 不起作用
【问题讨论】:
-
尝试完全删除标签并重新添加。这应该会导致重新绘制。
标签: javascript html