javascript - 是否可以在不重新加载的情况下运行注入(inject)的脚本?

标签 javascript jquery google-chrome-extension

我做了一个简单的自动表单填充程序,通过将信息从创建的 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/

相关文章:

javascript - 调用数字字面量的成员函数

jquery - 确定元素的不透明度 :hover value with jquery?

javascript - 如何正确地将这个原始代码放入 <pre> 标记中?

jquery - nyroModel 不会自动调整大小

google-chrome - 为什么内容脚本中未定义 chrome.cookies?

google-chrome - 可以用 Chrome 扩展吗?将单词列表添加到自定义词典中?

javascript - 当另一个函数调用时,函数不会触发

javascript - AngularJS - 没有错误但没有 View

javascript - 如何从注入(inject)的内容脚本中传递异步操作的结果?

javascript - 将选定的 div 插入文本区域(在光标位置)