tools kit how google for extensions extension development developer create chrome javascript google-chrome google-chrome-extension hyperlink google-chrome-devtools

javascript - kit - Enlace a chrome:// url desde una página web



how to do a chrome extension (2)

A continuación funciona para mí;

manifest.json

{ "manifest_version": 2, "name": "Redirection Sample", "description": "Test Redirection", "version": "1.0", "browser_action": { "default_icon": "icon.png", "default_popup": "popup.html" }, "permissions": [ "activeTab", "https://ajax.googleapis.com/" ] }

popup.html

<!doctype html> <html> <head> <title>Redirection Popup</title> <script src="popup.js"></script> </head> <body> <a href="#" id="test">test</a> </body> </html>

popup.js

document.addEventListener(''DOMContentLoaded'', function() { document.getElementById(''test'').addEventListener(''click'', function() { chrome.tabs.update({ url: ''chrome://chrome/extensions'' }); }); });

icon.png

Agregue uno personalizado o descargue una muestra de este enlace

Incluya todos estos 4 dentro de un directorio y cargue descomprimir la extensión en chrome. ¡Deberia de funcionar!

ACTUALIZAR

chrome://about/ tiene enlaces directos a chrome://settings y otros, por lo que se puede hacer.

¿Cómo puedo vincular / redirigir a una URL chrome:// en una página web? Por ejemplo, chrome://settings . Al intentar hacer clic en un enlace a una URL chrome:// ,

<a href="chrome://settings">link</a>

Me sale un error en la consola:

Not allowed to load local resource: chrome://settings/

Según esta respuesta, es posible:

Enlace a chrome: // chrome / extensiones desde la página de opciones de extensión

He intentado este script:

<a href="#" id="test">test</a> <script> document.addEventListener(''DOMContentLoaded'', function () { document.getElementById(''test'').addEventListener(''click'', function () { chrome.tabs.update({ url: ''chrome://chrome/extensions'' }); }); }); </script>

Y también este:

<a href="#" onclick="chrome.tabs.create({url:''chrome://settings/clearBrowserData''});">click me</a>

Ninguno de los dos funciona Además de esos, he intentado:

  • Vinculación con <a href="chrome://newtab">
  • Redirigir al usuario usando window.location .

Sin embargo, creo que puede haber una solución alternativa de JavaScript. Cuando el usuario presiona un enlace, ¿es posible cambiar la URL a chrome://settings ? El usuario debería presionar Intro después, pero parece ser lo mejor que obtendría.


No, no hay forma de hacerlo desde una página web.

chrome:// es un origen privilegiado, y cualquier intento de abrirlo dará como resultado un redireccionamiento a about:blank .

Chrome lo hace para reducir la superficie de ataque: aunque solo abrir esas URL debería ser inofensivo, es mejor no permitir que incluso los sitios web y los programas externos lo intenten.

Además, no es inofensivo, por ejemplo, las URL de depuración como chrome://crash , chrome://hang (cuidado, realmente hacen lo que esperas).

Obviamente, no puede usar chrome.tabs ya que es una API de extensión no expuesta a sitios web. Sin embargo, es capaz de abrir orígenes privilegiados.