【问题标题】:Chrome Extension - Show div only on Load upChrome 扩展程序 - 仅在加载时显示 div
【发布时间】:2016-01-27 07:47:00
【问题描述】:

我在使用 chrome 扩展程序时遇到问题。当您单击浏览器中的图标时,它会加载扩展程序。这很正常。但是,如果您想先在其中放置您的徽标怎么办?

就像 iOS 设备上的应用一样:首先显示徽标,然后加载应用。

所以我的 popup.html 中有 div <div class="loader"></div>。这个 div 使屏幕全白,中间有我的徽标,1 秒后它消失并显示内容。

但是现在:是否可以仅在加载时显示<div class="loader"></div>,而不是在加载时始终显示popup.html

【问题讨论】:

  • 当您说“仅在加载时而不是在加载 popup.html 时始终显示”时,我不确定您的意思。我的猜测是您的意思是,仅当您在会话中第一次单击它时才显示弹出窗口,而不是在随后的单击中。如果是这样,您可以在 popup.html 中初始加载后安装一些东西来禁用其他浏览器操作。这在这个 API link 中,但我的感觉是,如果不编写自己的代码来管理所有操作,这还不容易。
  • @eholder0 首先,感谢您的评论,我认为没有人会发表评论并将其置之不理。当他们单击右上角的扩展按钮时,我正在尝试显示div。然后,当访问者转到扩展程序中的 about 页面并返回索引页面时,div 将不再显示。 div 只能在扩展加载时显示,而不是在访问者已经加载扩展并刚刚从页面返回时显示。我希望你明白,英语不是我的母语,我很难解释

标签: jquery html google-chrome google-chrome-extension


【解决方案1】:

如果我理解正确你可以这样做:

在您的后台页面中:

localStorage['onLoadingFirstTime'] = 'true';

因此,每次启动浏览器时,都会在 localstorage 中存储一个值为“true”的变量。这意味着你的第一次。

在 popup.js 之后你可以写如下内容:

document.addEventListener('DOMContentLoaded', function(e) { if (localStorage['onLoadingFirstTime'] == 'true') { document.getElementsByClassName('loader')[0].style.visibility = 'visible'; localStorage['onLoadingFirstTime'] = '假'; } 别的 { document.getElementsByClassName('loader')[0].style.visibility = 'hidden'; } });

所以在 popup.js 完全加载后,您可以检查存储在 localstorage 中的变量的值:

如果是(表示第一次),则将此值设置为 false 并显示您的 div。

如果不是(意味着您第二次或多次点击扩展程序),则隐藏 div。

我希望这可以解决您的问题。

【讨论】:

  • 这可能会起作用,但我会稍微修改一下,如果值为 false 或未找到(不确定是 null 还是 undefined,但可以诚实地检查两者),然后考虑即第一次加载并将值设置为true。从那里开始,如果为真,则什么也不做。这样做还可以减轻在后台脚本中设置任何内容的负担,因此您可以将其完全包含在 popup.js/html 中的逻辑中。
猜你喜欢
  • 1970-01-01
  • 2016-08-15
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2019-09-19
  • 2018-01-24
  • 2013-12-28
  • 1970-01-01
相关资源
最近更新 更多