2009-08-27 13 views
5

Stworzyłem skrypt Greasemonkey, który działa poprawnie w edytorze firebug, z usuniętymi szczegółami Greasemonkey, ale nie wtedy, gdy próbuję go spakować jako usercript. Konsola błędów Firefoksa zgłasza, że ​​element iframe, którego próbuję użyć, jest niezdefiniowany.iframe undefined in Greasemonkey script

mam wyciąć userscript dół do minimalnej przypadku należy druku html iframe do konsoli firebug i robi kiedy uruchomić w edytorze firebug, ale nie działa jako 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

Jeśli to nie przyda sedno pełnego skryptu jest mi zebrać wszystkie znaczniki td z tego iframe, uzyskać pewne informacje od nich, a następnie wstawić jakiś nowy kod HTML na niektóre z tych samych td tagów.

Każda pomoc zostanie doceniona.

Odpowiedz

0

Być może trzeba czekać na DOMFrameContentLoaded

+0

Próbowałem za pomocą długiego czasomierz, ale problem nie jest z jakiegoś zawartości wewnątrz iframe nie jest gotowy, ale Greasemonkey działa jak rzeczywisty znacznika iframe Sam nie istnieje . – aston

+0

Testowanie długiego stopera i identyfikacja ramki według jej położenia w tablicy, [2], zamiast jej atrybutu nazwy sprawiło, że działa. DOMFrameContentLoaded jest lepszym rozwiązaniem niż setTimeOut. – aston