Empresas
Empleos
  • Sobre nosotros
  • Soluciones
    • Publicación de vacantes
      Publica tu vacante y recibe candidatos calificados en 48h.
    • Evaluación de candidatos
      500+ pruebas técnicas y psicológicas, más anti-fraude.
    • Headhunting
      Búsqueda ejecutiva a la medida de principio a fin.
    • Nómina + EOR
      Dispersión de nómina y EOR en más de 15 países de LATAM.
  • Precios
  • Empleos

0

169
Vistas
port.postMessage() en Native messagin no funciona como se esperaba en la extensión de Chrome

Quiero crear una extensión de Chrome de mensajería nativa simple. Es decir, necesito comunicarme con la extensión de Chrome a través de una web y la aplicación web a través de la extensión.

Pero cuando el mensaje del puerto es console.log , no se proporciona ningún resultado. Pero se muestra el valor enviado por el script de contenido a través de request.value. Cómo arreglar este problema.

Intenté abrir el código vs aquí haciendo clic en un botón insertado en la página web a través del script de contenido y tuve éxito. Ahora quiero pasar un mensaje de la extensión de Chrome a la página web mediante mensajería nativa.

manifiesto.json

 { "name": "Native Messaging Ex", "version": "1.0", "description": "Native messaging", "background": { "scripts": ["background.js"] }, "manifest_version": 2, "permissions": ["nativeMessaging"], "content_scripts": [ { "matches": ["http://*/*", "https://*/*"], "run_at": "document_idle", "js": ["contentScript.js"] } ], "browser_action": { "default_popup": "popup.html" } }

contra el murciélago

 @echo off start code

contra json

 { "name": "com.vscode", "description": "My Application", "path": "vs.bat", "type": "stdio", "allowed_origins": [ "chrome-extension://bmnmbagcjohegbabfgkhhmdgph/" ] }

contentScript.js

 // runs on the matching webpage var button = document.createElement('button'); var buttonTextNode = document.createTextNode('Click me to trigger something'); var body = document.querySelector('body'); button.appendChild(buttonTextNode); body.appendChild(button); // Event listener button.addEventListener('click', function () { chrome.runtime.sendMessage({ type: 'info', value: 'Hello World from other planet!', }); });

fondo.js

 // connect to the native messaging app chrome.runtime.onMessage.addListener(function (request, senders) { if (request.type === 'info') { var port = chrome.runtime.connectNative('com.vscode'); console.log(request.value); // Hello World from other planet! port.postMessage(request.value); port.onMessage.addListener(function (message) { console.log(message); // Nothing here }); port.onDisconnect.addListener(function () { if (chrome.runtime.lastError) { console.log(chrome.runtime.lastError); } }); } });
about 4 years ago · Juan Pablo Isaza
Responde la pregunta
Encuentra empleos remotos

¡Descubre la nueva forma de encontrar empleo!

Top de empleos
Top categorías de empleo
Empresas
Publicar vacante Precios Comercial
Legal
Términos y condiciones Política de privacidad
© 2026 PeakU Inc. All Rights Reserved.
Andres GPT
Recomiéndame algunas ofertas
Necesito ayuda