有时候选项卡ID存储在一个变量中,你需要检查选项卡是否仍然存在,然后再对其进行操作(因为用户可以随时关闭选项卡).我找到了这个解决方案:
chrome.tabs.get(1234567, function(tab) {
if (typeof tab == 'undefined') {
console.log('Tab does not exist!');
}
});
Run Code Online (Sandbox Code Playgroud)
它有效,但它有很严重的缺点.它将错误消息写入控制台,如下所示:
tabs.get期间出错:没有标识为1234567的标签.
这也不例外.所以try/catch无济于事.这只是控制台中的一条消息.
有任何想法吗?
更新:此错误现在看起来像"运行tabs.get时未检查runtime.lastError:没有标识为1234567的选项卡".
我找到了经典的MDN 公式来检查内容是否已滚动到底部,
element.scrollHeight - element.scrollTop === element.clientHeight
Run Code Online (Sandbox Code Playgroud)
不再适用于所有情况。例如,如果您将MDN 上的演示页面的内容比例更改为大于 100%,您将不会获得正确的结果。发生这种情况是因为现在浏览器在元素上使用亚像素精度。特别scrollTop是现在不是 100% 的比例是小数值。实际上,问题的发生是因为===上面公式中的符号。
那么最简单但仍然可靠的解决方案是什么?
我window.webkitStorageInfo.requestQuota()用来获取磁盘配额.一切正常,但我不能撤销已经为调试目的授予的配额.似乎没有API.而且我无法通过Chrome界面找到它是如何完成的.我找到了这个链接:chrome://quota-internals/但它只提供了一个只读信息.我正在开发chrome扩展,甚至卸载/安装它也无济于事.谁知道如何重置站点(或扩展)甚至整个存储的本地磁盘存储设置?
“调试”选项卡上的RegexBuddy显示了如何逐步执行正则表达式。但是这些步骤到底意味着什么?每个步骤背后都需要进行哪些操作?
我需要遍历组件的children并且仅在子组件为特定类型时才做一些事情:
React.Children.forEach(this.props.children, child => {
if (...) {
console.log('Suitable component!');
}
});
Run Code Online (Sandbox Code Playgroud)