google-apps-script - 谷歌应用脚​​本 : how to determine screen resolution?

标签 google-apps-script resolution

我正在尝试在 Google 应用程序脚本中创建一个应用程序,但我想根据屏幕(移动和桌面)的分辨率显示不同的布局。但是,我找不到有关如何确定屏幕分辨率的任何信息。

当然,我无法从服务器端确定屏幕分辨率,所以我尝试了是否可以使用客户端处理程序做点什么,但是 ClientHandlers没有任何屏幕分辨率的方法。我还尝试使用 app.createHTML() 将手动客户端脚本添加到应用程序中。 ,但是 Google 不允许使用 createHTML 包含 javascript。

那么如何使用 Google Apps 脚本获得浏览器的分辨率呢?

最佳答案

JavaScript screen.witdth属性在 GAS 环境中不起作用。位于 GAS 引擎盖下的 Google Caja sanitizer 会抛出

Uncaught script error: 'screen is not defined.' in source: 'tryit.asp?filename=tryjsref%5fscreen%5fwidth' at line: 7 tryit.asp?filename=tryjsref%5fscreen%5fwidth:7: screen is not defined.



将以下 HTML 页面加载到 Caja Playground 时出现异常.可能是Caja的问题。

<!DOCTYPE html>
<html>
<body>

<script>

document.write("Test");
document.write("Total Width: " + screen.width);

</script>

</body>
</html>

一种可能的解决方法是不依赖屏幕分辨率,而是使用用户代理字符串。该字符串包含用户浏览器“id”。 UiApp.getUserAgent方法返回它。例如,桌面上的 Mozilla Firefox 提供了这样的字符串 - Mozilla/5.0 (Windows NT 6.0; rv:15.0) Gecko/20100101 Firefox/15.0.1,gzip(gfe) .在手机上,此字符串包含 ...(Android; Mobile; rv:15.0)... .检查过程在返回的字符串中搜索单词 Mobile , Android等。如果其中一个发现它是一个移动平台,并且主代码使用相对控件大小绘制一个移动 GUI。下面的代码展示了如何使用它

function doGet(e) {
  var app = UiApp.createApplication();
  app.add(app.createLabel(UiApp.getUserAgent()));
  return app;
}

关于google-apps-script - 谷歌应用脚​​本 : how to determine screen resolution?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12760135/

相关文章:

javascript - 参数列表 Google 脚本后缺少 )

css - 使我的网站适应不同的分辨率

Angular 2 : How to add a class based on resolution condition?

html - 屏幕分辨率和图像大小,如何正确

java - 如何获取图像的分辨率 (PPI)

javascript - 如何将 Google Analytics api 响应放入工作表中?

javascript - Google 脚本不附加电子表格

google-apps-script - 使用 Google Sheet Add-on 时 Stackdriver 中 "Script delayed (xx min) waiting for quota"的含义

javascript - 如何在 Google Apps 脚本中异步运行方法?

android - 不同的分辨率与 dpi