我有2个不同类别的divs:
-
div类名称是:好
-
div类名称是:bad
我想随机使用JavaScript(用户脚本)单击此Divs。我从未在JavaScript中编码,我刚刚在Internet中找到了此代码。
我有此代码:
function addJQuery(callback) {
var script = document.createElement("script");
script.setAttribute("src", "http://ajax.googleapis.com/ajax/libs/jquery/1.4.2/jquery.min.js");
script.addEventListener('load', function() {
var script = document.createElement("script");
script.textContent = "(" + callback.toString() + ")();";
document.body.appendChild(script);
}, false);
document.body.appendChild(script);
}
function main() {
setInterval(function(){
$('div.good').click();
$('div.bad').click();
}, 5000);
}
addJQuery(main);
似乎您要做的是对这两个Divs之一执行动作。伪造单击是没有意义的,因为所有功能都是运行代码,这可以同样容易以另一个更方便的方式执行。单击DIV时您想发生什么?
首先,2个问题:
- 您想完成什么?您所做的任务很奇怪,我想不出任何无法用其他方式执行的应用程序。
- 有原因是您异步附加jQuery吗?
尽管如此,以下代码将单击事件单击两个Divs之一,随机选择,在页面加载后30秒。
function main() {
setTimeout(function() {
if (Math.random() < 0.5)
$('div.good').click();
else
$('div.bad').click();
}, 30*1000);
}
一个更通用的解决方案是编写一个随机选择函数,该功能从一组n个项目中随机选择。
Math.randomChoice = function(collection) {
return collection[Math.floor(Math.random() * collection.length)];
};
function main() {
setTimeout(function() {
var elem = Math.randomChoice(['good', 'bad']);
$('div.' + elem).click();
}, 30*1000);
}