Sobald ich auf die Schaltfläche Produkt anzeigen, die ich auf der Benachrichtigung erstellt, öffnet der Link in einem neuen Tab, aber für eine zweite Benachrichtigung, den Link öffnet zwei ähnliche Tabs und es geht weiter. Die Registerkarten nehmen mit steigender Anzahl der Benachrichtigungen zu. Es ist eine E-Commerce-WebsiteIch kann nicht meine Desktop-Push-Benachrichtigung für Chrome-Erweiterung auf der gleichen Registerkarte öffnen
Hier ist mein Code. Ich weiß nicht, wo ich falsch gelaufen bin.
var messages = [] ;
var ids = [] ;
var latestItem;
$(function(){
engine();
setInterval(engine, 60000);
});
function engine(){
var newItems = [];
$.get('https://www.mysite.or/electronics-video/', function(data){
var htmlData = data;
$data = ($(htmlData).find('.offer').eq(0));
$data.find('.fleft').remove();
$data.find('.rel.observelinkinfo.inlblk.zi3').remove();
$data.find('.suggesttitleright.small.top.abs.zi2.br4.hidden').remove();
$data.find('.thumb.vtop.inlblk.rel.tdnone.linkWithHash.scale4.detailsLink').remove();
$data.find('.color-9.lheight16.margintop5').remove();
$data.find('.breadcrumb.x-normal').remove();
$data.find('.normal.inlblk.pdingtop5.lheight16.color.2').remove();
$('body').append($data);
for(i = 0; i<$data.find('h3.x-large.lheight20.margintop5').length; i++){
ids[i]=($($data).find('td.wwnormal.tright.td-price').eq(i).find('p.price').text()).replace(/\n\r/g, '').trim();
messages[i]= ($($data).find('h3.x-large.lheight20.margintop5').eq(i).find('a.marginright5.link.linkWithHash.detailsLink').text()).replace(/\n\r/g, '').trim();
}
if (latestItem == ids[0]) {
}else if(latestItem === undefined) {
var firstRun = {
type: "basic",
title: "Site Notifier",
message: 'Visit the website for updates on new products',
iconUrl: "origi.png"
}
chrome.notifications.create(firstRun);
latestItem = ids[0];
}else if(latestItem != ids[0]) {
for(j = 0; j<ids.length; j++){
if(latestItem == ids[j]){
break;
}else{
if (messages[j] != " "){
newItems[j]= messages[j].concat(" - ").concat(ids[j]);
}
}
}
latestItem = ids[0];
}
if (newItems.length == 0){
}else{
for(i=0;i<newItems.length; i++){
var myItem = {
type: "basic",
title: "New Product Alert!",
message: newItems[i],
contextMessage: "Site Notifier",
buttons: [{
title: "View Product"
}],
iconUrl: "origi.png"
};
chrome.notifications.onButtonClicked.addListener(function(){
window.open('https://www.mysite.or/electronics-video/');
});
chrome.notifications.create(myItem);
}
}
});
}
Könnte einen Beispielcode oder nur eine Bearbeitung erstellen. –
Es war wirklich ein Problem, weiß nicht, was Sie mich durch ziehen –
@CollinKiprono jedes Mal, wenn Sie durch Ihre ** NewItems ** -Array durchlaufen, fügen Sie ** onButtonClicked ** Listener und sie multiplizieren. Sie müssen diesen Listener nur einmal irgendwo außerhalb der Schleife hinzufügen. –