我创建了一个新闻聚合器网站,该网站还衡量帖子的受欢迎程度。我已经设置了HTML和jquery,因此当您单击该链接时,它还会计算点击次数。
<a class="headline" href="www.example.com/a" target="_newWindow" onclick="incStoryClicksCount('15280681', '_on_click_handler'); return wopen('www.example.com/a');" rel="nofollow">Example A</a>
但是我需要测试以查看它是否有效,查看网站时是否有更简单的方法,而不是多次点击以尝试计算。我正在考虑尝试触发它,因此它在Chrome控制台(F12)中算作点击。但是我不知道我该怎么做。
我正在考虑的另一种选择是在按下Chrome中的f12时更改代码,这样当我稍微移动鼠标或单击按钮时,它就会“点击”。但是我也不知道如何执行它。
答案 0 :(得分:4)
您可以使用jQuery的.click()
方法。例如
$('a.headline').click();
它将触发事件
答案 1 :(得分:1)
如果将数据保存到数据库中,则只需将值修改为数据库即可。
如果您要测试的是点击事件,则会有模拟网站加载的程序,这些网站可以启动您网站的点击次数。
更好更简单的方法可能就是将您的点击事件发布到javascript循环中:
function launchMyClick(newsObject) {
for(var x = 0; x < 1000; x++)
newsObject.click(); //newsObject is the jQuery object representing your link.
}
只需为每条新闻多次调用此功能,您就会看到1000次点击的效果。
答案 2 :(得分:0)
您可以通过将元素绑定到另一个事件来触发元素的“点击”事件,例如“的keydown”。只是一个简短的例子:https://jsfiddle.net/wdop7ydk/1/
HTML
<a id='myLink' href='#'>My link</a>
JS / JQuery的
let myLink = $("#myLink");
myLink.on('click', function() {
console.log("Clicked");
});
$(document.body).on("keydown", function(e) {
if ( e.keyCode === 13 ) {
myLink.trigger("click"); // Or myLink.click(), as prtdomingo suggested.
};
});
在这里,每按一次Enter键,链接的“点击”事件就会触发。 (如果需要,您可以在此处查找键盘按钮的代码:http://keycode.info。)
答案 3 :(得分:0)
如果您想测试incStoryClicksCount
功能,请调用它:
incStoryClicksCount('15280681', '_on_click_handler');
如果由于某种原因,您的incStoryClicksCount
使用this
参数,则可以使用以下this
参数链接到实际<a>
节点来调用该函数:< / p>
# adapat the following code to select a relevant 'a' node :
# this specific example will fetch the first 'a' node with class 'headline'
# in the whole page
var a = $('a.headline').get(0);
# call function and specify what value should be used as 'this' :
incStoryClicksCount.call(a, '15280681', '_on_click_handler');
答案 4 :(得分:0)
您可以尝试将其他事件添加到链接中,例如mouseover
,因为它可能更容易触发多次,并略微更新了它们的操作以避免打开文章:
// Just mocking the functions in your code:
function _on_click_handler() {
console.log('_on_click_handler() called.');
}
function incStoryClicksCount(id, handlerKey) {
console.log(`\nincStoryClicksCount(${ id }, ${ handlerKey }) called.`);
const handler = window[handlerKey];
if (handler) handler();
}
function wopen(href) {
console.log(`wopen(${ href }) called.`);
return false;
}
// Let's create a function to replace wopen that won't open
// a link:
function noop() {
console.log(`noop() called.`);
return false;
}
// Let's grab all links and attach a mouseover event to them
// with similar code to their original `onclick`:
Array.from(document.querySelectorAll('.link')).map((link) => {
link.setAttribute('onmouseover',
link.getAttribute('onclick').replace(/wopen\(/g, 'noop(')
);
});
<a class="link" href="https://keyjs.dev/123" onclick="incStoryClicksCount('123', '_on_click_handler'); return wopen('https://keyjs.dev/123');">123</a>
<a class="link" href="https://keyjs.dev/456" onclick="incStoryClicksCount('456', '_on_click_handler'); return wopen('https://keyjs.dev/456');">456</a>
<a class="link" href="https://keyjs.dev/789" onclick="incStoryClicksCount('789', '_on_click_handler'); return wopen('https://keyjs.dev/789');">789</a>