Javascript chrome扩展:页面重新加载后的计时代码问题

时间:2017-01-03 14:15:04

标签: javascript google-chrome google-chrome-extension timing

我正在尝试编写一个简单的chrome扩展来练习javascript,因为我已经掌握了C语言的基本技能,我也想学习JS。我计划编写的扩展程序应该只在expedia网站上工作(在我的案例中为expedia.it),进行搜索并在输出文件中返回特定结果,让我们在电子表格中说。这是我到目前为止所写的:

的manifest.json:

{
"name":"Myextension",
"version":"1.0",
"manifest_version": 2,
"description":"extension sample",
"icons":{ "16":"icon16.png" },
"permissions": [
        "tabs",
        "activeTab",
        "https://ajax.googleapis.com/",
        "http://*/*",
        "https://*/*"
    ],
"content_scripts":[
    {
        "matches":["*://www.expedia.it/*"],
        "js":["script.js"]
    }
    ]
}

的script.js:

function refine(){
document.getElementById("inpHotelMirror").value='refinedsearch';
}
document.getElementById('package-departing').value='date1';
document.getElementById('package-returning').value='date2';
document.getElementById('search-button').click();

如代码所示,它应该写入输入" date1"和" date2" (在启动扩展之前定义)然后提交表单。直到这里,一切都很好,它的工作和搜索开始。问题是我想在页面重新加载后启动精简函数,大​​约需要10-15秒。为了做到这一点,我尝试了setTimeout,setInterval,window.onload和其他技巧,如while循环,使函数在页面加载后写入输入,但这些似乎都没有。我曾经多次搜索过与我类似的问题,但仍然无法解决问题。这是我的代码的问题,我应该改变它,或者这是网站的问题,阻止类似的脚本?

我为成为新手而道歉,并感谢您的帮助。

修改 我尝试添加run_at行,然后使用setTimeout调用refine函数。现在扩展不起作用,第一部分实际上都没有。我也试过了document_idle版本,现在第一部分再次起作用,但第二部分仍然没有。在重新加载的页面中注入代码时似乎存在问题。

0 个答案:

没有答案