我有一个简单的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) 我正在考虑将未发布的 Chrome 扩展程序中的某些权限改为可选权限,而不是清单中的必需权限,并希望测试用户流程。
调用chrome.permissions.request()未打包的扩展似乎只是默默地成功了。用户应该看到的浏览器对话框不会显示。
此Chrome 开发人员页面建议您可以使用打包文件测试正常用户流程.crx:
如果您想准确了解用户将收到哪些警告,请将扩展程序打包到 .crx 文件中,然后安装它。
但是,Chrome 似乎不再允许您.crx在 Chrome 网上应用店之外安装任意文件。将文件拖放到“扩展”页面上会列出该文件,但“已启用”复选框被禁用。这个SO 评论表明,以这种方式测试权限可能不再可能,但我还没有看到任何关于它的官方文档。
实际上,我可以通过使用这些说明.crx将非 Webstore文件添加到 Windows 注册表中的扩展白名单来安装和启用非 Webstore 文件,但该扩展也没有触发权限请求对话框。
所以我的问题是:
chrome.permissions.remove()?我目前有一个项目列表,例如<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组件看起来可能很接近,但我认为它不会随着窗口大小的调整而动态改变宽度或高度。
如果这种项目包装是可能的,是否有任何示例实现?
我目前正在开发一个反应页面,该页面使用来自 unsplash 的图像集合。我使用<img src="https://source.unsplash.com/random/?Cryptocurrency/" alt="crypto"/>标签来显示页面上每个内容的图像。但是,它为每段内容显示相同的图像。我尝试查看 unsplash 网站上的文档,但无法解决问题。任何关于从哪里开始的建议将不胜感激。