无法在Firefox中的同域iframe中调用函数

时间:2013-10-10 10:41:42

标签: javascript firefox iframe greasemonkey

我为Greasemonkey编写代码,我有一个没有src的iframe,我在其中添加了这样的代码:

 var appendToHead = function(iframe, content) {
    var doc = iframe[0].contentWindow.document;
    var element = doc.createElement('script');
    element.type = 'text/javascript';
    element.text = content;
    doc.head.appendChild(element);
};


我在Firebug中看到该功能已添加到iframe中。但是当我试图得到它们时,EG frames[0].contentWindow.functionName我得到undefined并仍然在调试器中看到它们。

在我使用Greasemonkey之前,这种方法效果很好。如何调用这些函数?

1 个答案:

答案 0 :(得分:1)

请参阅How do I access an iframe's javascript from a userscript

您可以调用类似:frames[0].functionName();的函数,但必须来自注入的代码,而不是Greasemonkey脚本范围。 (在某些情况下,@grant none 可能工作除外。)

您可能还需要延迟,具体取决于。发布您正在做的事情的完整工作示例。