我正在尝试编写一个简单的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版本,现在第一部分再次起作用,但第二部分仍然没有。在重新加载的页面中注入代码时似乎存在问题。