0

我正在一个网络应用程序上使用greasemonkey,该应用程序使用大量javascript分阶段构建DOM并利用extJS库。

在没有运行greasemonkey 代码的情况下,该站点显然可以正常加载。

当我运行此代码(或任何类似的简单代码)时:

jQuery( window ).load(function(){
    alert('some text');
});

我得到弹出没有问题的警报,但随后我从 firebug 收到此错误(并且应用程序的其余部分停止加载):

TypeError:container.getElementsByTagName 不是函数

指向这行代码:

   var MktMainNav={
topTabId:'mktTopTabList',
notAllowedMsg:MktLang.getStr('nav.Limited_access'),
init:function(){
    var container=$(this.topTabId);
    if(container){
        var elts=container.getElementsByTagName("div");
        for(var i=0;i<elts.length;i++){
            var el=Ext.fly(elts[i]);el.on("click",this.click,elts[i]);
                    }
                }
            }
        }

所以我不能编辑这段代码,因为我正在使用greasemonkey 来尝试改变应用程序的外观。

这对我来说似乎很奇怪。有任何想法吗?

4

1 回答 1

0

这不是您使用jQuery.load()Doc的方式——它是一个 AJAX 函数。从 Q 中最好的猜测是您正在尝试做:

window.addEventListener ("load", function () {
        alert('some text');
    },
    false
);

或者:

jQuery (window).on ("load", function () {
    alert('some text 2');
} );


对于其他任何事情,我们需要查看确切的 Greasemonkey 脚本和确切的目标页面来确定,但最可能的问题是@grant none干扰的一些变化。例如,请参阅Greasemonkey 1.0 中的 jQuery 与使用 jQuery 的网站冲突

于 2013-10-11T22:33:48.607 回答