“TypeError:无法使用GreaseMonkey脚本将undefined转换为对象”

时间:2013-07-19 13:18:54

标签: javascript jquery greasemonkey

我有以下GreaseMonkey脚本。它基本上为已经有很多按钮的页面添加了一个按钮。单击该添加的按钮应触发w / e功能与单击所有其他按钮相关联。但是,当我单击triggerAllButton时,我在控制台中收到错误TypeError: can't convert undefined to object。任何想法这个代码有什么问题?我将@include@exclude中的链接替换为...,因为我不希望它们公开。

// ==UserScript==
// @name Test Stuff
// @description Test
// @include ...
// @require .../static/jquery.min.js
// @require .../static/bootstrap/js/bootstrap.js
// @require .../static/datatables/js/jquery.dataTables.js
// @require .../static/datatables/js/DT_bootstrap.js
// @require .../static/toastr/toastr.js
// ==/UserScript==

$(document).ready(function(){
    $('.navbar-text.pull-right')
        .append('<input type="button" id="triggerAllButton" class="btn btn-info btn-small" value="Trigger All">');
});

$(function(){
    $('#triggerAllButton').click(function(e){
        e.preventDefault();
        $(".btn.trigger").each(function() {
            $(this).trigger();
        });
    });
});

1 个答案:

答案 0 :(得分:3)

您错误地使用.trigger(),您至少需要传递事件类型参数。

$('#triggerAllButton').click(function(e){
    e.preventDefault();
    $(".btn.trigger").trigger("click"); //.each is implicit on all jQuery methods
});