Закладка Javascript генерирует ошибку «Синтаксическая ошибка: отсутствует) в скобках» - PullRequest
0 голосов
/ 25 октября 2019

Я озадачен тем, почему этот простой букмарклет Javascript не работает.

javascript:(setInterval(function() { 
     var element = document.getElementById("observeBtn");
      if (element != null) element.click(); 
}, 1000);)();

Ошибка в консоли браузера:

Синтаксическая ошибка: отсутствует) в скобках

Я посчитал скобки, и все они совпадают (7 слева, 7 справа).

Все, что эта функция должна делать, это проверять каждую секунду, существует ли кнопка observeBtnна веб-странице, и если это так, автоматически нажмите ее.

Кроме того, кто-то может объяснить, для чего нужен последний "();"?

Ответы [ 2 ]

1 голос
/ 26 октября 2019
setInterval(function() { 
var element = document.getElementById("observeBtn"); 
if (element != null) element.click(); 
}, 1000);

Это работает для меня.

Правка из-за вашей правки - вам не нужны последние (), которые у вас были.

0 голосов
/ 26 октября 2019

Если вам нужно определить функцию IIFE, вам нужно использовать правильный синтаксис:

(function(){
    // code here
})();

или функции стрелок ES6

(() => {
    // code here
})

Таким образом, ваша функция IIFE должна выглядеть следующим образом:

(function () {
    setInterval(function() { 

        var element = document.getElementById("observeBtn");
        if (element != null) element.click(); 

    }, 1000);
})();

Обратите внимание на важный аспект приведенного выше кода: вы определяете функцию, а затем вызываете ее в скобках last ().

...