单击按钮运行javascript

时间:2013-02-09 01:11:58

标签: google-chrome-extension

我的最后一个问题因为不够清楚而被关闭。我会在这里详细分解,以便不会发生这种情况。

我的popup.html包含4个按钮。当我点击图标时,我需要发生的是在任何给定页面上,弹出popup.html。然后我点击每个按钮我需要特定的javascript代码来运行活动标签页中的每个按钮。

我在popup.html中试过这个 “http://cnn.com'onclick ='alert(”test“);'>”只是为了尝试运行一个函数,但这不起作用。我没有在此网站或google开发示例中找到任何特定代码来完成此任务。

基本上当“popup.html”页面上显示的按钮我需要这个javascript来运行“javascript:document.getElementById(%22forwardbutton%22).click();”。

或我的其他功能之一,如“javascript:var auto = {names:'0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 1 2 3 4 5 6 7 8 9 1 2 3 4 5 6 7 8 9',blurb:'0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 1 2 3 4 5 6 7 8 9 1 2 3 4 5 6 7 8 9',密码:'secret',fillerup:function(){var all_inputs = document.getElementsByTagName('input'); [...] next.click();“

我目前正在书签菜单中的“书签”中运行该代码,但希望将其合并到打包的扩展程序中。

我希望这很清楚。我遇到的主要问题是能够执行代码。一旦我能够单击按钮并在活动选项卡上执行“功能”,我将能够计算出其余部分。即使您可以指向一个足够接近的示例代码站点,它也会有很大帮助。我很抱歉要问,但我很难用我搜索过的资源搞清楚。

提前感谢!


编辑:这是我需要运行的函数,这是代码,但不会运行。

document.addEventListener('DOMContentLoaded', function () {
var divs = document.getElementById('ADD');
divs.addEventListener('click', ADD);
});


function ADD(e) {
var auto = {
names: '0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 1 2 3 4 5 6 7 8 9 1 2 3 4 5 6 7 8 9',
blurb: '0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 1 2 3 4 5 6 7 8 9 1 2 3 4 5 6 7 8 9',
password: 'secret',
fillerup: function () {
    var all_inputs = document.getElementsByTagName('input');
    var all_selects = document.getElementsByTagName('select');
    var all_textareas = document.getElementsByTagName('textarea');
    var textflag = this.getRand(1);
    for (var i = 0, max = all_selects.length; i < max; i) {
        var sel = all_selects[i];
        if (sel.selectedIndex != -1 && sel.options[sel.selectedIndex].value) {
            continue;
        }
        var howmany = 1;
        if (sel.type == 'select-multiple') {
            var howmany = 1 this.getRand(sel.options.length - 1);
        }
        for (var j = 0; j < howmany; j) {
            var index = this.getRand(sel.options.length - 1);
            sel.options[index].selected = 'selected';
        }
    }
    for (var i = 0, max = all_textareas.length; i < max; i) {
        var ta = all_textareas[i];
        var flag = this.getRand(1);
        if (ta.value) {
            ta.value = "";
            continue;
        } else {
            ta.value = this.getRandomString(10)
            '\n\n'
            this.getRandomString(10);
        }
    }
    for (var i = 0, max = all_inputs.length; i < max; i) {
        var inp = all_inputs[i];
        var type = inp.getAttribute('type');
        var id = inp.getAttribute('id');
        if (!type) {
            type = 'text';
        }
        if (type == 'checkbox') {
            var flag = this.getRand(1);
            if (flag) {
                inp.setAttribute('checked', 'checked');
            } else {
                inp.removeAttribute('checked');
            }
        }
    }
    for (var i = 0, max = all_inputs.length; i < max; i) {
        var inp = all_inputs[i];
        var type = inp.getAttribute('type');
        var id = inp.getAttribute('id');
        var flag = this.getRand(1);
        if (type == 'text') {
            if (!flag) {
                inp.value = '';
                continue;
            }
            if (inp.name.indexOf('name') != -1) {
                inp.value = this.getRandomName()
                ' '
                this.getRandomName();
            } else if (inp.name.indexOf('email') != -1) {
                inp.value = this.getRandomString(1)
                '@example.org';
            } else {
                inp.value = this.getRandomString(1);
            }
        }
    }
    for (var i = 0, max = all_inputs.length; i < max; i) {
        var inp = all_inputs[i];
        var type = inp.getAttribute('type');
        var id = inp.getAttribute('id');
        var flag = this.getRand(1);
        if (type == 'radio') {
            var to_update = true;
            var name = inp.name;
            var input_array = inp.form.elements[inp.name];
            if (to_update) {
                var index = this.getRand(input_array.length - 1);
                input_array[index].setAttribute('checked', 'checked');
            }
        }
    }
},
getRandomString: function (how_many_words) {
    if (!how_many_words) {
        how_many_words = 2;
    }
    if (!this.words) {
        this.words = this.blurb.split(' ');
    }
    var retval = '';
    for (var i = 0; i < how_many_words; i) {
        retval = this.words[this.getRand(this.words.length) - 1];
        retval = (i < how_many_words - 1) ? ' ' : '';
    }
    return retval;
},
getRandomName: function () {
    if (!this.split_names) {
        this.split_names = this.names.split(' ');
    }
    return this.split_names[this.getRand(this.split_names.length) - 1];
},
getPassword: function () {
    if (!this.password) {
        this.password = 'secret';
    }
    return this.password;
},
getRand: function (count) {
    return Math.round(count * Math.random());
}
};
auto.fillerup();
var next = document.getElementById(forwardbutton);
next.click();
}

0 个答案:

没有答案