我正在通过WebExtension Api(带有弹出窗口)制作Thunderbird扩展,并且在运行Content脚本以直接从Thunderbird界面获取某些元素(例如当前邮件的附件列表)时遇到一些困难。
我制作了popup.html,popup.js和contentScript.js,它们在打开弹出窗口时运行。显然,contentScript.js不在主Thunderbird选项卡中运行,但是当我通过代码打开一个新的选项卡(带有url)时,它运行平稳。
$(document).ready(function(){
console.log('Try to execute contentScript');
// -- create new tab --
// browser.tabs.create({
// url: 'https://example.org'
// });
// -- execute script in current tab --
browser.tabs.executeScript({
file: 'scripts/contentScript.js'
});
});
// from contentScript.js
console.log('contentScript.js - Injected');
在控制台中,我期望“ contentScript.js-注入”,但这仅在我不在主Thunderbird选项卡中时适用。 当我在主选项卡中时,它仅显示“尝试执行contentScript”,则没有任何显示,没有错误。
Thunderbird扩展现在已经从旧的旧方法(xul文件的覆盖)演变为大多数浏览器使用的实际WebExtension Api,但是有一些区别:在Firefox中,扩展可以正常工作,所以我认为雷鸟的主标签受到了某种形式的内容注入保护。
我的目的是直接从界面中获取附件列表和其他元素,但显然我不能。