我做了一个简单的自动表单填充程序,通过将信息从创建的 html 发送到后台,然后发送到内容脚本,以便注入(inject)的脚本可以更改表单上的信息。
我知道页面加载后内容脚本就会运行。我想知道是否可以再次运行内容脚本,而无需重新加载页面。
我在内容脚本中获得了 sendRequest
函数,我用它来确保它仅在页面准备就绪时获取信息。然后它将信息添加到表单中,并等待我发送。
在内容脚本中,我添加了一个 onRequest
并且它可以工作(它获取信息)。但是,除非我重新加载页面,否则我看不到表单上的更改。
我想知道是否可以做到,如果可以,我应该学习哪些科目来实现这一点。
我是 chrome 扩展的新手,我仍在学习:) 在其中一页中,我使用 jQuery,因此使用 jQuery 的答案也很好。
最佳答案
我发现,如果我们从后台创建chrome.tabs.sendRequest
,我们就可以使用chrome.extestion.onRequest>内容脚本并且每次都会执行,因为它们几乎同时运行。
所以我是从背景做的:
chrome.tabs.query({}, function (tabs) {
for (var i = 0; i < tabs.length; i++) {
chrome.tabs.sendRequest(tabs[i].id, {...requests u want to send }, function (response) {
});
}
});
来自内容脚本:
chrome.extension.onRequest.addListener(function (request, sender, sendRespons) {
//get requested info here
//call functions.
sendResponse({}); //send info back to background page.
});
关于javascript - 是否可以在不重新加载的情况下运行注入(inject)的脚本?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11473105/