2009-08-27 9 views
5

He creado una secuencia de comandos de Greasemonkey que funciona bien en el editor de Firebug, con los detalles específicos de Greasemonkey eliminados, pero no cuando intento empaquetarlo como un usuario. La consola de error de Firefox informa que un iframe que estoy tratando de usar no está definido.iframe indefinido en la secuencia de comandos de Greasemonkey

He cortado el userscript a un caso mínimo en el que se debe imprimiendo el HTML iframe en la consola de Firebug, y lo hace cuando se ejecuta en el editor de Firebug, pero no está funcionando como un userscript:

// ==UserScript== 
// @name   Movies 
// @include  http://*.princecharlescinema.com/* 
// @include  http://princecharlescinema.com/* 
// ==/UserScript== 

// stop script loading multiple times 
if (top !=self) return; 

var iframeHTML = window.frames['iframe2'].document.documentElement.innerHTML; 
unsafeWindow.console.log(iframeHTML); 

An example page the script is intended for

Si es de alguna utilidad la esencia del guión completo es colecciono todas las etiquetas td de este marco flotante, obtener información de ellos, y luego insertar un nuevo hTML en algunas de las mismas etiquetas td.

Cualquier ayuda sería apreciada.

Respuesta

0

Tal vez usted necesidad de esperar a DOMFrameContentLoaded

+0

He intentado utilizar un temporizador largo, pero el problema no es con un cierto contenido dentro del marco flotante no estar listo, pero Greasemonkey está actuando como la etiqueta iframe en sí no existe . – aston

+0

Probando un temporizador largo e identificando el cuadro por su posición de matriz, [2], en lugar de su atributo de nombre lo puso en funcionamiento. DOMFrameContentLoaded es una mejor solución que un setTimeOut. – aston

Cuestiones relacionadas