小编jdu*_*ing的帖子

为什么chrome.tabs.query()在Chrome扩展程序中使用RequireJS调用时会返回标签的URL?

我有一个简单的Chrome扩展程序,可添加浏览器操作.当扩展程序的弹出窗口打开时,它需要访问当前选项卡的URL.由于它不需要访问所有选项卡,我只是拥有activeTab清单中指定的权限:

{
    "manifest_version": 2,
    "name": "RequireJS Test",
    "version": "0.0.1",
    "description": "Test RequireJS and the activeTab permission.",
    "permissions": [
        "activeTab"
    ],
    "browser_action": {
        "default_popup": "popup.html"
    },
    "web_accessible_resources": [
        "js/*",
        "html/*",
        "css/*",
        "img/*"
    ]
}
Run Code Online (Sandbox Code Playgroud)

理论上,这应该让弹出窗口访问活动选项卡的URL,但是当我从require()弹出窗口的main.js文件中的调用中查询选项卡时,不会返回URL :

require([], function() {
    chrome.tabs.query({"active": true, "lastFocusedWindow": true}, function (tabs) {
        var url = tabs[0].url;
        console.log("URL from main.js", url);
    });

    console.log("URL from global var accessed in main.js", tabURL);
});
Run Code Online (Sandbox Code Playgroud)

控制台显示undefinedURL.但是,如果我从一个不使用的普通.js文件中进行相同的调用require(),它可以正常工作:

chrome.tabs.query({"active": true, "lastFocusedWindow": true}, function (tabs) …
Run Code Online (Sandbox Code Playgroud)

javascript google-chrome google-chrome-extension requirejs

15
推荐指数
2
解决办法
3万
查看次数

如何测试 Chrome 扩展程序中的可选权限?

我正在考虑将未发布的 Chrome 扩展程序中的某些权限改为可选权限,而不是清单中的必需权限,并希望测试用户流程。

调用chrome.permissions.request()未打包的扩展似乎只是默默地成功了。用户应该看到的浏览器对话框不会显示。

此Chrome 开发人员页面建议您可以使用打包文件测试正常用户流程.crx:

如果您想准确了解用户将收到哪些警告,请将扩展程序打包到 .crx 文件中,然后安装它。

但是,Chrome 似乎不再允许您.crx在 Chrome 网上应用店之外安装任意文件。将文件拖放到“扩展”页面上会列出该文件,但“已启用”复选框被禁用。这个SO 评论表明,以这种方式测试权限可能不再可能,但我还没有看到任何关于它的官方文档。

实际上,我可以通过使用这些说明.crx将非 Webstore文件添加到 Windows 注册表中的扩展白名单来安装和启用非 Webstore 文件,但该扩展也没有触发权限请求对话框。

所以我的问题是:

  1. 除了将扩展程序发布到 Chrome Webstore 之外,还有其他方法可以测试权限请求流程吗?
  2. 接受可选权限后删除它们以便再次测试流程的最佳方法是什么?删除扩展程序?称呼chrome.permissions.remove()?

permissions google-chrome google-chrome-extension

7
推荐指数
1
解决办法
2403
查看次数

React Virtualized 支持 flex-wrap/inline-block 样式的项目包装吗?

我目前有一个项目列表,例如<ul><li/><li/>...</ul>,每个项目的样式都是display: inline-block。这些项目不是固定的高度或宽度,尽管我可能可以将它们固定,并且每个项目都包含缩略图,有时还包含文本。

随着窗口宽度的变化,列表会相应地换行,没有水平滚动条。例如,列表可能以 3 个项目开始,它们全部水平排列在窗口内的一行上:

| 1 2 3     |
Run Code Online (Sandbox Code Playgroud)

然后添加更多项目,并且这些项目开始换行到第二行:

| 1 2 3 4 5 |
| 6 7 8     |
Run Code Online (Sandbox Code Playgroud)

然后,如果窗口宽度发生变化,项目将重新换行:

| 1 2 3 4 5 6 7 |
| 8             |
Run Code Online (Sandbox Code Playgroud)

当有数千个项目时,性能肯定会受到影响,所以我想看看是否有一种方法可以虚拟化列表。从我阅读的文档来看,React Virtualized 库目前似乎不支持此功能,但我想检查一下。该Collection组件看起来可能很接近,但我认为它不会随着窗口大小的调整而动态改变宽度或高度。

如果这种项目包装是可能的,是否有任何示例实现?

reactjs react-virtualized

2
推荐指数
1
解决办法
2426
查看次数

如何从 unsplash 获取多个随机图像并显示在我的网站上?

我目前正在开发一个反应页面,该页面使用来自 unsplash 的图像集合。我使用<img src="https://source.unsplash.com/random/?Cryptocurrency/" alt="crypto"/>标签来显示页面上每个内容的图像。但是,它为每段内容显示相同的图像。我尝试查看 unsplash 网站上的文档,但无法解决问题。任何关于从哪里开始的建议将不胜感激。

html javascript reactjs

1
推荐指数
1
解决办法
2万
查看次数