11

Başlığın da belirttiği gibi: setInterval sadece geri bildirimini bir kez ateşliyor.setInterval çalışmıyor (yalnızca bir kez ateş) Google Chrome uzantısında

manifest.json:

{ 
    //... 
    "content_scripts" : [{ 
     "js" : ["code.js"], 
     //... 
    }], 
    //... 
} 

code.js (örnek):

setInterval(alert('only shown once'),2000); 

Neden ve nasıl tamir edebilirim? Kod, bir uzantının dışında iyi çalışır (bir yer imi işaretinde bile).

+1

[JS setInterval yalnızca bir kez yürütür] olası kopyası (http://stackoverflow.com/questions/7746505/js-setinterval-executes-only-once) – qwertymk

cevap

31
setInterval(function() { alert('only shown once') },2000); 

Sen alert gibi bir işlev başvurusu ve

+0

Oh, haklısınız. Başka bir yerde bir sorun var ve uyarı ile kontrol etme girişimi özensizdi. Gerçek kodda bir referans var. –

+0

Bunun neden böyle davrandığını açıklar mısınız? Ben JavaScript için nispeten yeni ve bu konuda olabildiğince fazla öğrenmek istiyorum. @qwertymk – J2N

+0

@JLaw [** Daha iyi bir açıklama için bu cevaba bir göz atın **] (http://stackoverflow.com/a/7746522/465546) – qwertymk

6

setIntervalalert() hiç çalışmıyor değil bir dönüş değeri geçmesi gerekiyor.

İlk argüman işlevi olmalıdır, bir işlev olmayan alert() dönüş değerini iletiyorsunuz. setInterval(function(){//your code}, timeInterval):

setInterval() bir işlev ve bir sayısal değer ister: Eğer yanlış yazmış

setInterval(function,time,array_of_arguments_to_call_function_with); 
setInterval(alert,2000,['only shown once']); 
+0

Oh, haklısın. Başka bir yerde bir sorun var ve uyarı ile kontrol etme girişimi özensizdi. Gerçek kodda bir referans var. –

1

yolu:

üç argüman sürümünü kullanın.

+0

Haklısınız. Başka bir yerde bir sorun var ve uyarı ile kontrol etme girişimi özensizdi. Gerçek kodda bir referans var. –

İlgili konular