ejemplos - javascript español
Alerta de JavaScript no funciona en Firefox 6 (3)
La respuesta de Felix indica correctamente por qué javascript:
en la barra de URL ya no funciona.
El reemplazo para esto, si está tratando de depurar su página web, es la consola web (que no debe confundirse con la consola de errores). En el menú compacto, está en Web Developer; en la barra de menú completa, está en Herramientas. O puede presionar ctrl-shift-K (cmd-shift-K en Mac). La barra con un signo mayor que es una solicitud de JavaScript; el código ingresado allí será evaluado en el contexto de la página actual. Se puede hacer clic en cualquier cosa en el área sobre la barra que está subrayada para abrir una ventana de inspector.
Intenté ejecutar este código JavaScript en la barra de direcciones en Firefox 6:
javascript:alert("Hello")
Yo tengo un
ReferenceError: alerta no definida.
Sin embargo, solía funcionar bien en Firefox 5 y aún funciona en Opera, Safari y Chrome. ¿Cómo puedo solucionar esto?
Parece que usar javascript:
y los data:
URL (directamente en la barra de direcciones) actualmente no están permitidos según este comentario :
FYI, probablemente voy a dividir este error en correcciones múltiples, a corto y a más largo plazo.
Corto plazo: no permitir pegar javascript: URL en la barra de URL
A más largo plazo: adicionalmente se requiere que bookmarklets sea "incluido en la lista blanca" en el Administrador de marcadores antes de que pueda ejecutar JavaScript
Y este es el "error" que se resolvió en la última versión . El último comentario también dice:
javascript: en realidad no se ignora, se ejecutan, pero en un contexto "vacío" que no tiene ninguno de los métodos DOM habituales que cabría esperar, por lo que los usos más comunes (p. ej. javascript: alert (1)) solo arrojan ( y por lo tanto son ignorados efectivamente). javascript: 1 + 1 funciona bien, sin embargo.
Ahora:
¿Cómo puedo solucionar esto?
No puedes, tienes que esperar hasta que decidan una solución adecuada. Como decía el comentario, bookmarklets funcionará, pero debe estar explícitamente permitido. Si solo quiere probar el código, use Firebug o la nueva función Scratchpad .
Si tu bookmarklet clicable se rompió y quieres recuperarlo, puedes crear un botón en el que se pueda hacer clic utilizando la extensión de botones personalizados de Firefox.
Las ventajas del botón sobre ejecutar desde Scratchpad:
- puedes guardar el bookmarklet (botón),
- puede tener un lindo icono propio (crear una imagen, por ejemplo, un archivo PNG, importarlo y base64_encode dentro del nuevo cuadro de diálogo del botón).
La extensión es un poco especial porque los botones se ejecutan en el nivel de Chrome de Firefox , por lo que tienen un poco más de privilegios (puede interactuar con la API del navegador) y no hay correspondencia 1 a 1 entre JS normal y el código del botón ( necesita algunos ajustes ). Más precisamente, el document
y la window
ven desde el botón no son los que esperabas.
Sin embargo, puede asignar la window
y el document
''buenos'' a sus variables, y luego trabajar en estas variables (mejor no redefinir ventana;)
Aquí hay un código de muestra que escribí que funciona bastante bien en Fx10:
// get proper ''window'' and ''document'' into our private variables
var theWindow = window.top.getBrowser().selectedBrowser.contentWindow;
var theDocument = theWindow.document;
// here we go
var input = theDocument.getElementById("foo");
input.focus(); // just to show you it''s working, unnecessary in fact
// simulate keyboard event
var evt = theDocument.createEvent("KeyboardEvent");
evt.initKeyEvent ("keypress", true, true, theWindow ,
0, 0, 0, 0, 0, 65); // 65 == "A"
input.dispatchEvent(evt);
// show alert after 2 sec
theWindow.setTimeout( function(){
input.value += "B";
theWindow.alert(input.value); // alerts "AB"
},2000);
En lugar de usar funciones globales directamente (como setTimeout
o alert
), debe colocar la theWindow.
antes que ellos, y reemplazar document
/ window
con theDocument
/ theWindow
local y parece estar funcionando. Sin embargo, no lo he probado a fondo en casos muy complicados.
Para agregar un botón, haga clic con el botón derecho en cualquier botón que ya tenga y elija ''Agregar nuevo botón ...''.