Javascript getElementsByTagName不是函数吗?

Javascript getElementsByTagName不是函数吗?,javascript,tinymce,Javascript,Tinymce,事实上,我在之前的一篇文章中发现了这段代码,它与我提出的一个问题有关,尽管看起来很简单,但我无法通过doc.getElementsByTagName不是一个函数错误。以下是示例代码: var addCssRule = (function() { var addRule; if (typeof document.styleSheets != "undefined" && document.styleSheets) { add

事实上,我在之前的一篇文章中发现了这段代码,它与我提出的一个问题有关,尽管看起来很简单,但我无法通过doc.getElementsByTagName不是一个函数错误。以下是示例代码:

var addCssRule = (function() {
        var addRule;

        if (typeof document.styleSheets != "undefined" && document.styleSheets) {
            addRule = function(selector, rule, doc, el) {
                var sheets = doc.styleSheets, sheet;
                if (sheets && sheets.length) {
                    sheet = sheets[sheets.length - 1];
                    if (sheet.addRule) {
                        sheet.addRule(selector, rule)
                    } else if (typeof sheet.cssText == "string") {
                        sheet.cssText = selector + " {" + rule + "}";
                    } else if (sheet.insertRule && sheet.cssRules) {
                        sheet.insertRule(selector + " {" + rule + "}", sheet.cssRules.length);
                    }
                }
            }
        } else {
            addRule = function(selector, rule, doc, el) {
                el.appendChild(doc.createTextNode(selector + " {" + rule + "}"));
            };
        }

        return function(selector, rule, doc) {
            doc = doc || document;

            var head = doc.getElementsByTagName("head")[0];
            if (head && addRule) {
                var styleEl = doc.createElement("style");
                styleEl.type = "text/css";
                styleEl.media = "screen";
                head.appendChild(styleEl);
                addRule(selector, rule, doc, styleEl);
                styleEl = null;
            }
        };
    })();

    addCssRule("ol", "color:red", tinyMCE.Editor[0]);

我很肯定代码是正确的。我想我误解了tinymce变量是如何传递的。您觉得怎么样?

您的代码在我看来很好,尽管我确实认为在您的情况下,addCssRule的最后一个参数不是DOM元素。至少这是导致出现此类错误的原因。

我觉得您的代码很好,尽管我确实认为在您的情况下,addCssRule的最后一个参数不是DOM元素。至少这会导致出现这样的错误。

传递到函数中的第三个参数是tinyMCE.Editor[0]。有getElementsByTagName函数吗?

传递到函数中的第三个参数是tinyMCE.Editor[0]。它有getElementsByTagName函数吗?

这里有一些问题

一,。您不会使用文档作为第三个参数来调用函数-它是一个编辑器实例。 要解决此问题,应使用AddCsRuleOL,颜色:红色,tinyMCE.Editor[0].getDoc;或addCssRuleol,颜色:红色,tinyMCE.geteditor\u id.getDoc

二,。您在函数中引用了错误的文档。您要做的是引用主windows文档,而不是要应用css规则的编辑器实例iframe的文档!您需要参考tinyMCE.Editor[0]。这里也是getDoc。

这里有问题

一,。您不会使用文档作为第三个参数来调用函数-它是一个编辑器实例。 要解决此问题,应使用AddCsRuleOL,颜色:红色,tinyMCE.Editor[0].getDoc;或addCssRuleol,颜色:红色,tinyMCE.geteditor\u id.getDoc


二,。您在函数中引用了错误的文档。您要做的是引用主windows文档,而不是要应用css规则的编辑器实例iframe的文档!您需要参考tinyMCE.Editor[0]。此处也要参考getDoc。

哪些浏览器会出错?哪些浏览器会出错?雅各布乐队又罢工了!:你知道的。。。我想我对tinymce api的了解还不足以告诉你这一点。我一直在努力避免手动传递名称,因为我希望函数尽可能采用oop。我想我需要对tinymce如何实际存储对象做更多的研究。谢谢你的快速回复。雅各布乐队又罢工了!:你知道的。。。我想我对tinymce api的了解还不足以告诉你这一点。我一直在努力避免手动传递名称,因为我希望函数尽可能采用oop。我想我需要对tinymce如何实际存储对象做更多的研究。谢谢你的快速回复。我不得不做一些编辑,但效果很好。非常感谢。好几天来我一直在为这个头痛。非常感谢。很高兴能够提供帮助。我不得不做一些编辑工作,但效果很好。非常感谢。好几天来我一直在为这个头痛。非常感谢。很高兴能帮上忙