我正在开发一个Chrome插件,它运行一段简单的JS代码,可以调整页面上div的大小。页面加载时它工作正常。但是,该网站使用了一些ajax。加载ajax时,div resize将被撤消。每次加载此ajax请求时,如何让脚本重新执行?
ajax每次只需从一个地方加载:www.website.com/Default.aspx
这可能很简单,但我是一个完整而全面的新手:)谢谢!
关于查看代码的请求,请记住,除了对基本原理的理解之外,我没有真正的编程经验。这个插件已经从谷歌搜索等一起报废。也许我咬过的东西比我可以咀嚼的多,但是这里有:
这是执行的代码:
document.getElementById('ctl00_Body_cntrl_rgMyIssues_GridData').style.height = '500px';
这是manifest.json的一部分,用于处理运行js:
{
"manifest_version": 2,
"content_scripts": [
{
"matches": ["https://www.website.com/*"],
"js": ["resize_queue.js"]
}
],
答案 0 :(得分:-2)
如果您只是想在ajax请求回来后执行一段javascript代码,那么基本上可以采用以下两种方式之一。
1)执行同步而不是异步请求。
这很简单:xmlhttp.open("GET","cd_catalog.xml",false); //Note the false
然后你只需要在此之后输入你想要运行的代码,javascript将等到ajax请求完成之后再进行。
2)将您想要运行的代码放在ajax的readystate部分。
以下内容来自w3schools(并不像大家所说的那样糟糕):
function loadXMLDoc()
{
var xmlhttp;
if (window.XMLHttpRequest)
{// code for IE7+, Firefox, Chrome, Opera, Safari
xmlhttp=new XMLHttpRequest();
}
else
{// code for IE6, IE5
xmlhttp=new ActiveXObject("Microsoft.XMLHTTP");
}
xmlhttp.onreadystatechange=function()
{
if (xmlhttp.readyState==4 && xmlhttp.status==200)
{
document.getElementById("myDiv").innerHTML=xmlhttp.responseText;
//Do other code here
}
}
xmlhttp.open("GET","ajax_info.txt",true);
xmlhttp.send();
}