javascript - 元标记视口使用 QML WebEngineView 在页面上添加不需要的空间
问题描述
我必须在嵌入式设备上的 WebEngineView(1.3 版)上显示第三方网页(我无法编辑)。该设备有一个固定分辨率为 800x480 的显示器。
这个页面有这个视口元标记,这是我的问题的原因:
<meta name="viewport" content="width=device-width, initial-scale=1, shrink-to-fit=no">
加载页面后,WebEngineView 内的内容大小正确为 800 像素。但是用户可以水平滚动并将内容向左移动。似乎一旦用户开始滚动页面,内容宽度就会变为 3200px(通过一些调试打印进行检查)。
我试图添加一个 WebEngineScript 来删除元标记,但它似乎不起作用:
WebEngineScript {
id: removeMeta
injectionPoint: WebEngineScript.DocumentReady
sourceCode: "document.querySelector(\"[name='viewport']\").remove();"
}
WebEngineView {
ind: webview
...
userScripts: [ removeMeta ]
...
onLoadingChanged: {
if (loadRequest.status === WebEngineView.LoadSucceededStatus
{
var js = "document.documentElement.outerHTML";
webview.runJavaScript(js, function(result){console.log(result);})
}
}
}
如果我在渲染完成后打印页面的内部 HTML,则元标记不存在。如果我将 injectionPoint 更改为WebEngineScript.DocumentCreation
标签仍然存在。
如何忽略元标记并防止不需要的水平滚动?
解决方案
推荐阅读
- google-chrome - 不支持组件树
- python - Correct usage of Django's user_permissions and get_user_permissions()?
- javascript - jquery - 选择的文本一直被存储输出重复的文本
- php - 用于获取多个表数据的 Hasmany 关系
- powershell - Powershell 这两个变量有什么区别
- node.js - 从 Package.json 脚本运行 BrowserSync 时出错
- android - “ADB Root 访问被禁用”即使启用了 root 访问
- css - 如何将 Angular Material 与 css 框架结合起来(bootsrtap/语义 UI/materialize)
- django - 解释 `<<: *name` 如何在 docker-compose 中引用 `&name`?
- haskell - 通用量化(或多态)类型类实例