运行相同的Javascript多次Chrome扩展

时间:2016-05-13 02:59:49

标签: javascript google-chrome-extension

我目前正在从Chrome扩展程序中将Javascript文件注入网页,以便在网页上自动填写并提交表单。此外,我需要此脚本来不断自动填充和执行脚本。但是,表单提交仅发生在脚本的末尾,迫使我多次运行整个脚本,而不是在脚本的内容上使用循环。如何在网页上反复运行相同的Javascript文件?我目前正在执行的方法似乎失败并且只运行一次脚本。

这是我目前的background.js:

public class HelloService extends Service {

    Thread ref;
    boolean isInterrupted = false;

    @Override
    public IBinder onBind(Intent arg0) {
        return null;
    }

    @Override
    public void onCreate() {
        super.onCreate();
    }

    @Override
    public int onStartCommand(Intent intent, int flags, int startId) {
        ref = new Thread(new Runnable() {
            @Override
            public void run() {
                for (int i = 0; i < 20; i++) {
                    try {
                        Thread.sleep(3000);
                    } catch (InterruptedException e) {
                        if (isInterrupted) {
                            return;
                        }
                    }
                }
            }
        });
        ref.start();
        return Service.START_NOT_STICKY;
    }

    @Override
    public void onDestroy() {
        isInterrupted = true;
        ref.interrupt();
    }

}

Inject.js是我想多次运行的Javascript文件。以下是该脚本的简化版本:

// listen for our browerAction to be clicked
chrome.browserAction.onClicked.addListener(function (tab) {
executeScripts(null, [ 
    { file: "inject.js" }, 
    { file: "inject.js" },
    { file: "inject.js" },
    { code: "inject.js" }
])
});

1 个答案:

答案 0 :(得分:0)

如果你想每隔x毫秒运行一个函数func:

setInterval(func, x);