Tengo un problema. A través del envío de mensajes transferí los datos de DOM de la secuencia de comandos de contenido a la página de fondo. Lo que me gustaría saber es cómo puede establecer un canal de comunicación entre la página Opciones y la página de fondo. La API chrome.extension.getBackgroundPage()
no es útil. Tampoco está funcionando el mensaje tradicional que pasa por sendRequest
y addlistener
. ¿Cómo transfiero estos datos desde la página de fondo a la página de opciones? ¿Podría alguien proporcionar un fragmento probado para explicar?cómo comunicarse entre una página de opciones y una página de fondo de la extensión de cromo
esto es lo que he estado intentando. En mis contentscript.js
<script>
var selected_Text ="";
window.addEventListener("dblclick",function(event){
selected_Text = String(window.getSelection());
chrome.extension.sendRequest({greeting: "maprender",name:selected_Text}, function(response) {
alert("reached here")
console.log(response.farewell);
});
//i am to then load options.html on DOM like this
var Div = document.createElement("iframe");
Div.setAttribute('src', chrome.extension.getURL('options.html'));
Div.setAttribute("style","width:130px;height:80px;position:absolute;left:10px;");
Div.setAttribute("id","xyz");
document.body.appendChild(Div);
</script>
I retreive la selected_Text en background.html como esto
<script>
var Addr_details={
place:null
};
chrome.extension.onRequest.addListener(
function(request, sender, sendResponse) {
if (request.greeting == "maprender")
{
alert("reached here sendin resp"+request.name);
Addr_details.place = request.name;
sendResponse({farewell: "goodbye"});
}
else
sendResponse({}); // snub them.
});
</script>
Ahora para acceder al valor de este texto a la página de opciones options.html he intentado 2 métodos una era la de utilizar chrome.extension.getBackgroundPage() así:
<script>
function init(){
var bkg = chrome.extension.getBackgroundPage();
alert("the selected text is "+bkg.Addr_details.place);
}
</script>
init es onload de options.html .Esta no me da la v Alue. de hecho, acaba en la inicialización de chrome.extension.backgroundPage.
Otro enfoque que probé fue crear una solicitud similar (como la que ya está presente en contentscript.js) de contentscript.js con un saludo diferente y agregarle un oyente en options.html. Eso tampoco parece funcionar en el lado del receptor (página de opciones) porque recibo la devolución de llamada en el índice de contenido después de la solicitud. Seguramente estoy haciendo algo mal, ¿o sí? Por favor ayuda.
"La API chrome.extension.getBackgroundPage() no es útil" ¿Por qué? –