我正在尝试使用TypeScript编写一个跨所有浏览器的扩展。我已经找到了这个包:https://www.npmjs.com/package/web-ext-types,我正在使用它,我已经在我的package.json中设置了它。
在类型记录中,我可以键入浏览器并查看所有intellisense,等等,但是当我在Chrome中运行它时,会得到例外情况:
Uncaught (in promise) ReferenceError: browser is not defined.我的代码如下:
browser.webNavigation.onHistoryStateUpdated.addListener((e) => {
console.log("webNavigation onHistoryStateUpdated");
console.log(e);
// do something here
});我对类型记录和浏览器扩展非常陌生,如果我更改为Chrome,它可以正常工作,但在IE/Firefox (可能是firefox?)中不支持。我已经找到了这篇文章:https://www.smashingmagazine.com/2017/04/browser-extension-edge-chrome-firefox-opera-brave-vivaldi/,它建议将它放入:
window.browser = (function () {
return window.msBrowser ||
window.browser ||
window.chrome;
})();我的问题是,我应该或者应该由网络文本类型来处理这个问题吗?此外,当我试图将它放在TypeScript中的任何地方时,都会得到错误:
类型窗口上不存在属性浏览器。目前,我还包括:
“@type/chrome”:"~0.0.63“
如果我使用的是网络图文类型,我应该删除这个吗?我还在使用chrome.declarativeContent.onPageChanged,它似乎不在浏览器中。
谢谢你的帮助。
发布于 2018-07-14 11:12:49
我想您可能是在寻找chrome.history.onVisited.addListener,它的功能与它在铬中的功能不同,但功能是相似的。
据我所知,在chrome上没有“浏览器”变量,但是,您可能可以做某种类型的填充,它可以工作,原则上。就像浏览器扩展的某种jQuery。
https://stackoverflow.com/questions/51337428
复制相似问题