从后台脚本中读取DOM内容?

时间:2017-11-28 19:36:19

标签: javascript google-chrome-extension background content-script

我们假设有两个网站:y.comx.com。以下是我到目前为止所做的事情:

  1. 点击message上的按钮后,将y.com发送到后台脚本。
  2. 后台脚本会打开一个新标签y.com
  3. 但是,现在已经打开了y.com的标签,如何从x.com中读取DOM,并在x.com上运行的内容脚本中使用该信息?

    到目前为止,这是我的代码:

    content.js (针对var btn = document.querySelector('my-btn') // Send message when btn is clicked btn.addEventListener('click', message) function message() { chrome.runtime.sendMessage({ message: 'Get Y data' }, null, function() { // I want to use data from `y.com` here somehow }) } 运行的内容脚本)

    chrome.runtime.onMessage.addListener(function(response, sender, sendResponse) {
      if (response.message !== 'Get Y data') {
        return
      }
    
      var url = '...'
    
      chrome.tabs.create({ active: true, url: url }, function (tab) {
        // How do I read DOM from this new `tab` and send it back to content script?
      })
    })
    

    background.js

        def ListMakoVariables(template):
            '''
            Extract Mako variables from template.
            '''
            start = 'XXXX${'
            stop = '}YYYY'
            makovars = []
            splitReady = template.replace('${',start).replace('}',stop)
            startParts = splitReady.split('XXXX')
            for startStr in startParts:
                if '}' in startStr:
                    makovars.append(startStr.split('YYYY')[0])
            vars = set(makovars)
            return vars, makovars
    

0 个答案:

没有答案