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.