javascript - 复制 chrome://offline-internals/ 功能 - chrome.send 不是函数
问题描述
我正在尝试构建chrome://offline-internals/功能。chrome://offline-internals/ 显示了许多内容,即为离线查看而存储的页面,此功能仅在移动 chrome 浏览器中可用。
chrome://offline-internals/ 的页面基本上有一个 HTML 页面,我使用view-source:chrome://offline-internals/找到了该页面。我引用了一个 javascript (offline_internals.js) 的 HTML,而后者又引用了嵌套的 javascript。我在本地文件夹中下载了所有引用的 javascript,因为 chrome 不允许访问 chrome://resources/js 以引用 js 页面。
下载后,我尝试打开 HTML 页面,但出现如下错误
cr.m.js:107 Uncaught TypeError: chrome.send is not a function
at sendWithPromise (cr.m.js:107)
at OfflineInternalsBrowserProxyImpl.getStoredPages (offline_internals_browser_proxy.js:30)
at refreshAll (offline_internals.js:64)
at HTMLDocument.initialize (offline_internals.js:248)
这基本上来自cr.m.js
以下函数中调用的文件
export function sendWithPromise(methodName, var_args) {
const args = Array.prototype.slice.call(arguments, 1);
const promiseResolver = new PromiseResolver();
const id = methodName + '_' + createUid();
chromeSendResolverMap[id] = promiseResolver;
chrome.send(methodName, [id].concat(args)); <-- Error
return promiseResolver.promise;
}
我试图打开chrome://offline-internals/并在上面的函数处设置断点,那个时间chrome.send
被发现是一个函数,当我运行具有相同源和引用的自定义 HTML 页面时,它说chrome.send
不是一个函数。
可能,chrome
给我的脚本的实例与给chrome://offline-internals/的实例是不同的。
我能做些什么来解决这个问题?
PS:此链接chrome://offline-internals/将仅在您的移动 chrome 浏览器中打开。
PS:所有下载的文件都在这个路径下,如果你想看的话: https ://easyupload.io/9x332s
解决方案
推荐阅读
- html - 如何更改按钮内文本的悬停颜色
- javascript - Nodejs创建不同的发布请求
- angular - 如何将 formControl 绑定到具有对象 id 的对象?PrimeNG 下拉菜单
- image - 更改图像尺寸 - 大量导入时出错 - Prestashop 1.7
- c# - C# Fluent API 将两个属性映射到同一列
- java - 仅迭代枚举中以某些字符开头的值的最有效方法
- python - 如何在python的字典中附加重复函数中的数据?
- javascript - javascript中的if else子句面临错误“SyntaxError:预期的表达式,得到关键字'else'@(shell):1:0”
- php - 将源文件复制到 php 容器时出现 docker build 错误
- java - Flinks Collector.collect() 如何处理数据?