主机站点完成ajax请求后如何运行自己的用户脚本功能?

时间:2014-07-10 07:19:02

标签: javascript ajax greasemonkey

我正在使用带有Firefox的greasemonkey来改变访问特定域时显示的内容。其中一个页面包含一个包含两个元素的下拉列表,让我们将它们称为element0和element1。每当它检测到从一个切换到另一个切换时,它会执行ajax查询,根据您选择的页面内容来改变页面内容。所以它看起来像这样:

$(".dropdown").change(function(){

if($(this).val()=='element0'){
$.ajax({
    // fetch some html
   });
}

else{
$.ajax({
// fetch some other html entirely
});

我对选择element0时显示的内容感到满意 - 它是我想要更改的element1的相关内容。所以我需要一种方法只在第二种情况下触发我自己的usercript函数。我也不知何故需要它只在ajax查询完成后执行。我该怎么做?

我有一些编程的基本经验,但对jquery,ajax,json等一无所知。一位朋友帮助我找到了该页面的上述ajax,以便我甚至可以发布一个有意义的问题。请记住我的经验水平,因为我真的很想用你们所能提供的任何知识/智慧向前推进,但只有在我理解的情况下才能这样做。

非常感谢!

编辑:以上是主机正在运行的javascript。我通过保存页面并手动查看来访问它。我在客户端编写用户脚本以改变我的浏览器显示的内容。所以我想编写自己的函数,以我描述的方式响应它们的js。

1 个答案:

答案 0 :(得分:-1)

AJAX

在ajax你有一个有用的方法, 成功与compleate

成功:如果ajax请求是工作真理,则执行

完成:完成ajax功能后工作,所以你可以使用这个方法

示例:

                    complete: function(){
                        // call another ajax, hide somthing, do any somthing
                    },

另一个例子:

var all_data = {'user':txtuser,'pass':txtpass};
$.ajax ({ 

url:"ajax.php",
type:"post",
data:all_data,
beforeSend:function(){
// do somting before send a data
},
statusCode:{
404:function(){
                 $("#ma").html("Page not found");
              },
401:function(){  
                 $("#ma").html(".....");
              }

           },

success:function (data) {
$("#ma").html(data);// if sucsess
},

complete:function(){ // when complete
$("#user").hide(2000);
$("#pass").hide(2000);
$(".q").hide(2000);
}


});