javascript – Google Chrome扩展程序:仅创建一次窗口
内容导读
互联网集市收集整理的这篇技术教程文章主要介绍了javascript – Google Chrome扩展程序:仅创建一次窗口,小编现在分享给大家,供广大互联网技能从业者学习和参考。文章包含1621字,纯文字阅读大概需要3分钟。
内容图文
![javascript – Google Chrome扩展程序:仅创建一次窗口](/upload/InfoBanner/zyjiaocheng/791/69b828c0d38e4028a31f21540f29a806.jpg)
我点击搜索栏附近的扩展按钮打开一个新窗口.
我只想在尚未打开的情况下打开一个新窗口;在那种情况下,我更喜欢展示旧的.
这是我的代码,但它不起作用.
var v = null;
var vid = null;
chrome.browserAction.onClicked.addListener(function(tab) {
chrome.windows.getAll({}, function(list) {
// check if already exists
for(window in window_list)
if(window.id == vid) { window.focus(); return; }
chrome.windows.getCurrent(function(w) {
v = chrome.windows.create({'url': 'my_url', 'type': 'panel', 'focused': true});
vid = w.id;
});
});
});
有人可以解释我如何解决它吗?
最有可能的是,关闭应用程序后(在完成执行脚本之后)删除了v和vid值,但是我该如何解决?如果可能,不使用localStorage或cookies.
我已经尝试在创建窗口时指定tabId属性,但它不起作用.
我也尝试过使用chrome.windows.onRemoved.addListener功能,但它也不起作用.
解决方法:
>将窗口更改为另一个变量名称.
>在变量名中保持一致. window_list和list是不同的东西.
>使用chrome.windows.update而不是window.focus(),因为后者不起作用.
>使用chrome.windows.get查看窗口是否存在,而不是维护窗口列表.
>新窗口的详细信息在chrome.windows.create的回调中可用.以正确的方式使用此方法:
码:
chrome.windows.get(vid, function(chromeWindow) {
if (!chrome.runtime.lastError && chromeWindow) {
chrome.windows.update(vid, {focused: true});
return;
}
chrome.windows.create(
{'url': 'my_url', 'type': 'panel', 'focused': true},
function(chromeWindow) {
vid = chromeWindow.id;
}
);
});
或者,不是检查窗口是否存在,只需更新窗口,当发生错误时,打开一个新窗口:
chrome.windows.update(vid, {focused: true}, function() {
if (chrome.runtime.lastError) {
chrome.windows.create(
{'url': 'my_url', 'type': 'panel', 'focused': true},
function(chromeWindow) {
vid = chromeWindow.id;
});
}
});
内容总结
以上是互联网集市为您收集整理的javascript – Google Chrome扩展程序:仅创建一次窗口全部内容,希望文章能够帮你解决javascript – Google Chrome扩展程序:仅创建一次窗口所遇到的程序开发问题。 如果觉得互联网集市技术教程内容还不错,欢迎将互联网集市网站推荐给程序员好友。
内容备注
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 gblab@vip.qq.com 举报,一经查实,本站将立刻删除。
内容手机端
扫描二维码推送至手机访问。