Firefox sin política del mismo origen

Firefox sin política del mismo origen

Tengo un problema cada vez más frustrante con la implementación de Firefox de la política del mismo origen.

Estoy desarrollando un sistema integrado con soporte de pantalla táctil y tenemos la opción de usuario de cargar páginas web en iframes en varias ubicaciones de la pantalla. Las páginas web pueden sercualquiertipo de páginas web de cualquier tipo de dominio y ubicación (google, yahoo, páginas de intranet, etc.) y aquí radica mi problema.

Necesito poder agregar un evento onclick al iframe, que me dé la identificación del iframe (o algún otro identificador único) como respuesta. Esto me dice que hay actividad (navegación web) en curso en el iframe y que el iframe no debe recargarse (las páginas están configuradas para un intervalo de actualización automática fijo que debe interrumpirse según la actividad).

He leído casi todo lo que Google me devuelve (pero me encantaría que me refuten en este asunto) y he descubierto que esta es la mejor (entre muchas otras) solución:

<iframe src='http://google.com' id='iframe1' onload='netscape.security.PrivilegeManager.enablePrivilege("UniversalBrowserWrite"); this.contentWindow.document.addEventListener("click", function(event) {alert(this.id);}, false)'></iframe>

Esto solo me da el normalpermiso denegado parahttp://localhostpara obtener la propiedad Window.document dehttp://google.com

por quéRecibo este mensaje de error y mi pregunta es simple. ¿Cómo lo elimino?

Es un sistema integrado, puedo compilar Firefox desde el código fuente, puedo editar el código fuente si es necesario, puedo cambiar prefs.js, etc. pero necesito usar Firefox (sé que todos los demás navegadores web sensibles tienen un buen interruptor de línea de comando). para apagarlo...) pero tenemos una integración (bastante) estrecha con la plataforma Firefox que sería difícil de eliminar.

Actualmente utilizamos Firefox v.3.5.16 (sé que está en EOL, lo actualizaremos en otro momento) en una plataforma Debian Squeeze. Si es necesario, puedo actualizar a una versión más nueva de Firefox, pero por lo que he descubierto, parece que le va aún peor en este asunto.

TL;DR Ayúdame a cerrar la póliza del mismo origen, encualquier forma posibleen Firefox 3.5.16 para una plataforma integrada que necesita alterar el código a través de iframes entre dominios.

Respuesta1

Me siento bastante estúpido.

Funciona cuando usasUniversalXPConnecten lugar de UniversalBrowserWrite.

Por ejemplo: netscape.security.PrivilegeManager.enablePrivilege("UniversalXPConnect");

Tambien tu puedesnouse this.id o this.parentNode.id, eso todavía da un error de acceso (diferente). Para solucionar ese problema, simplemente guárdelo primero en una variable temporal:

onload='var tempstuff = this.id; this.contentWindow.document.addEventListener("click", function(event) {alert(tempstuff);}, false)'

información relacionada