如何在运行时更改应用程序图标?

How to change the application favicon in runtime?

我需要在运行时根据品牌更改网站图标。当应用程序启动时,我调用 webservice 来建立品牌,然后我需要配置应用程序。我不知道如何更新网站图标 - 可以吗?

<link rel="shortcut icon" href="favicon-brand1.ico">

澄清一下我的需求背景——我的应用程序是一个GWT应用程序,要求是在完成加载之前根据域名(品牌)配置它的外观。所以我实现了 web 服务,它为我提供了所有配置数据,如站点名称、站点描述(放置在元描述中的主机 HTML 页面中)和相关的图标。 我能够更新我的应用程序的元标记,但我找不到如何从 GWT 代码而不是使用 JavaScript 代码更新应用程序图标的解决方案。

我不确定你的应用程序的上下文,但我想如果你动态生成这个,正确的事情就会发生。

我的意思是在模型中指定文件名 属性 并在视图中使用它。

所以,不要硬编码 - 查找它。

所以你最终会得到类似....

的东西
<link rel="shortcut icon" href="@model.BrandFavIcon">

您可以访问您主机页面上的任何标签。

所以像这样的东西应该可以工作:

NodeList<Element> nodes = Document.get().getElementsByTagName("link");
for (int i = 0; i < nodes.getLength(); i++) {
  LinkElement link = LinkElement.as(nodes.getItem(i));
  if (link.getRel("shortcut icon") != null) {
    link.setHRef("favicon-brandNew.ico");
  }
}