我的最后一个问题因为不够清楚而被关闭。我将在这里详细分解它,以免发生这种情况。
我有包含 4 个按钮的 popup.html。当我单击图标时,我需要在任何给定页面上发生什么,popup.html 会弹出。然后我单击每个按钮,我需要为活动选项卡中该页面上的每个按钮运行特定的 javascript 代码。
我在 popup.html "http://cnn.com' onclick='alert("test");'>" 中尝试过这个只是为了尝试运行一个函数,但这不起作用。我还没有在本网站或谷歌开发示例中找到任何特定代码来完成此任务。
基本上,当“popup.html”页面上显示的按钮时,我需要这个 javascript 来运行“javascript:document.getElementById(%22forwardbutton%22).click();”。
或我的其他功能之一,例如“javascript:var auto = {名称:'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',简介:'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',密码:'秘密',填充:函数(){ 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();
}