0

我为 Greasemonkey 编写代码,我有一个没有 a 的 iframe src,我在其中添加如下代码:

 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 之前,这种方法效果很好。如何调用这些函数?

4

1 回答 1

1

请参阅如何从用户脚本访问 iframe 的 javascript

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

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

于 2013-10-10T11:38:04.510 回答