如何将内容脚本变量发送到后台脚本? Chrome扩展程序

问题描述

我想从内容脚本向后台脚本发送一个名为“ website_hostname”的变量。它包含您当前所在网站的主机名。

内容脚本:

var website_hostname =  window.location.href;

//Code to send website_hostname 

背景脚本:

// Get website_hostname 

解决方法

我相信您可以通过使用chrome onMessage来做到这一点。

内容

Keyword.new(%{"browser_name" => "Chrome","platform" => "linux"},fn {k,v} -> {String.to_existing_atom(k),v} end)
> [browser_name: "Chrome",platform: "linux"]

我从https://developer.mozilla.org/en-US/docs/Mozilla/Add-ons/WebExtensions/API/runtime/onMessage那里得到了

,

类似于上一个答案中对您的建议 但是要做到这一点,最好使用寿命长的连接端口

长期连接https://developer.chrome.com/extensions/messaging

var port = chrome.runtime.connect() Send a message to background page port.postMessage()

监听器

for response port.onMessage.addListener()