gpt4 book ai didi

javascript - 如何使用 firefox addon sdk 将脚本即 gmail.js api directlty 注入(inject) gmail 内容?

转载 作者:行者123 更新时间:2023-11-30 00:30:29 25 4
gpt4 key购买 nike

在 lib/Main.js 文件中:

var data = require("sdk/self").data;
var pageMod = require("sdk/page-mod");
var _workers = [];

pageMod.PageMod({
include: "https://mail.google.com/*",
contentScriptWhen: 'end',
contentScriptFile: [data.url("./inject.js")],
contentScriptWhen: "end",
attachTo: 'top' //<-- add this property to only attach to top level documen
});

在数据/inject.js 中:

var script1 = document.createElement('script');
script1.type = "text/javascript";
script1.src = "resource://jid1-ecwxnrqlkw2cja-at-jetpack/my-addon/data/jquery.min.js";
document.body.appendChild(script1);

var script2 = document.createElement('script');
script2.type = "text/javascript";
script2.src = "resource://jid1-ecwxnrqlkw2cja-at-jetpack/my-addon/data/gmail.js";
document.body.appendChild(script2);

var script3 = document.createElement('script');
script3.type = "text/javascript";
script3.src = "resource://jid1-ecwxnrqlkw2cja-at-jetpack/my-addon/data/addbutton.js";
document.body.appendChild(script3);

在数据/addbutton.js 中:

$(function () {     
$(document).on("click", ".aic",function () {
alert("clicked");
setInterval(function () {
if(!$(".dw").hasClass("np"))
{
if($(".dw .no").eq(0).children().length > 2)
{
var latestComposeTab = $(".dw .no").eq(0).children().length - 2;
$(".dw .no").eq(0).children().eq(latestComposeTab).find("td.Up").children().children().eq(1).text("Secure Send");
$(".dw .no").eq(0).children().eq(latestComposeTab).find("td.a8X").children().children().eq(1).hide();
$(".dw .no").eq(0).children().eq(latestComposeTab).find("td.a8X").children().children().eq(2).hide();
var gmail = Gmail();

gmail.observe.on("upload_attachment", function(file, xhr) {
alert("upload attachment"+file);
console.log("file", file, 'xhr', xhr);
})

gmail.observe.on('view_thread', function(obj) {
alert("view_thread"+obj)
console.log('view_thread', obj);
});

// now we have access to the sub observers view_email and load_email_menu
gmail.observe.on('view_email', function(obj) {
alert("view_email"+obj)
console.log('view_email', obj);
});

gmail.observe.on("refresh", function(url, body, data, xhr) {
alert("refresh")
console.log("url:", url, 'body', body, 'data', data, 'xhr', xhr);
})

}
}
}, 100);

});

})

https://github.com/KartikTalwar/gmail.js/tree/master 获取 gmail.js 文件

在 gmail.js 中触发 upload_Attachment 观察器时出现附件失败问题。请需要帮助来触发 gmail.js 中存在的 upload_attachment 观察器。

最佳答案

使用 require("sdk/self").data.load("addbutton.js") 从数据文件中读取源代码,然后使用 contentScriptOptions 传递它内容脚本的 src

pageMod.PageMod({
include: "https://mail.google.com/*",
contentScriptWhen: 'end',
contentScriptFile: [data.url("./inject.js")],
contentScriptWhen: "end",
contentScriptOptions: {
"addbutton": require("sdk/self").data.load("addbutton.js")
},
attachTo: 'top' //<-- add this property to only attach to top level documen
});

然后在 inject.js 中,像这样创建脚本标签:

var script1 = document.createElement('script');
script1.type = "text/javascript";
script1.innerText = self.options.addbutton;

关于javascript - 如何使用 firefox addon sdk 将脚本即 gmail.js api directlty 注入(inject) gmail 内容?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/29763568/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com