En primer lugar, esta no es exactamente la forma ideal de configurar una página, sin embargo, hay una necesidad de distribuir un script como 1 archivo.Error de Firefox 'no se encontró ningún elemento'
Tengo un script php en la parte superior de un documento xhtml con javascript y bajo ciertas condiciones uso XHR para enviar una cadena de consulta a la página. El php en la parte superior se activa y almacena el contenido pasado como una sesión, y luego se mata a sí mismo (exit()). El XHR es asíncrono y nunca se verifica para ver si devuelve contenido.
Sin embargo, en Firefox 3, la consola de error arroja un error no element found
cada vez que se envía la solicitud XHR. Además, si utilizo una salida como exit('Done')
, Firefox arroja un error de sintaxis de (Hecho) como si lo insertara en el DOM visible. Esto no parece suceder en Opera.
¿Existe alguna forma mejor de almacenar una sesión desde una página xhtml ya generada? Obviamente, podría XHR a otra página, pero preferiría mantener todo en un solo script. ¿Firefox trata las solicitudes de XHR a sí mismo como actualizaciones del DOM? No sé por qué está enviando este error.
actualización Como ya he dicho, sólo para Firefox thows el error cuando se hace la petición XHR. La página es XHTML válida y funciona perfectamente, sin error a menos que la solicitud XHR se realice en la página misma.
Me preguntaba por qué se enviaba el error porque realmente no devuelve nada.
Aquí hay un fragmento de javascript que realiza una solicitud de ajax desde un objeto. Crea un objeto XHR, sin una función de devolución de llamada, y publica la información. Funciona correctamente cuando no se hace referencia a la misma página.
var saveState = { saveContent: function(updateActiveMenu) {
var sendState = new ajaxObject(gV.url);
if (!updateActiveMenu) {
var storageContainer = document.getElementById("StorageContainer").innerHTML;
var menu = document.getElementById("Nav").innerHTML;
sendState.update("Containerstring="+urlencode(storageContainer)+"&Nav="+urlencode(menu)+"&Active="+gV.activeMenuItem, 'POST', true); } }, }
Y el php hace esto
if (isset($_REQUEST['Containerstring']) && isset($_REQUEST['Nav']) && isset($_REQUEST['Active'])) {
$_SESSION['Containerarray'] = (saveContainer(regulateEscapes(urldecode($_REQUEST['Containerstring']))));
$_SESSION['Navarray'] = (saveNav(regulateEscapes(urldecode($_REQUEST['Nav']))));
$_SESSION['Active'] = $_REQUEST['Active'];
exit('Done');
}
También soy consciente de que no debería usar innerHTML pero eso es otra historia
El error es este
Error: no element found
Source File: http://localhost/ajax.php?1244648094055
Line: 1
Tenga en cuenta que el error, mientras que en el p La página hp que estoy usando hace referencia a una cadena de consulta que nunca se llama.
hay algo de inconsistencia en lo que está describiendo. si xhr nunca usa el valor devuelto (que es 'Hecho'), entonces no puede insertarlo en un DOM, ¿o sí? – SilentGhost
aún mejor publique un pequeño ejemplo de su código. – SilentGhost
¿Por qué no poner las partes relevantes de la fuente de la página? –