2009-08-27 83 views
5

我创建了一个Greasemonkey脚本,该脚本在萤火虫编辑器中运行良好,Greasemonkey细节已删除,但未尝试将其打包为用户脚本。 Firefox错误控制台报告说我尝试使用的iframe是未定义的。iframe在Greasemonkey脚本中未定义

我剪了userscript跌到哪里应该打印的iframe HTML到Firebug控制台最小的情况下,并在Firebug的编辑器中运行时的做法,但不工作的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

如果它的任何使用完整的脚本的要点是我收集这个iframe中的所有TD标签,从他们那里得到一些信息,然后再插入一些新的HTML到一些相同的TD标签。

任何帮助,将不胜感激。

回答

0

也许你需要等待DOMFrameContentLoaded

+0

我尝试使用长计时器,但问题不在于里面没有准备好iframe的一些内容,但Greasemonkey的是像个实际iframe标签本身不存在。 – aston 2009-08-27 21:04:28

+0

测试一个长计时器并通过它的数组位置[2]识别帧,而不是它的名称属性使它工作。 DOMFrameContentLoaded是一个比setTimeOut更好的解决方案。 – aston 2009-08-27 23:40:15