Jquery 钩住并更改ajax请求

Jquery 钩住并更改ajax请求,jquery,ajax,proxy,Jquery,Ajax,Proxy,我是JQuery的新手。我使用的是一个封闭的框架,它允许我添加代码,但不能更改某些行为。 为了添加功能,我需要钩住一个特定的Ajax请求并将其重定向到我的URL(这样我就可以在那里更改数据并使用代理),或者在客户端更改请求的参数 使用JQuery可以做到这一点吗?如果是,怎么做 在更新文本输入框后触发原始事件 更新: 经过进一步检查,文本框似乎是使用JQuery自动完成插件操作的。我试图翻译这个ajax请求返回的单词。基本上,用户输入一种语言的文本,我想将其翻译成英语(翻译本身不是问题),因此

我是JQuery的新手。我使用的是一个封闭的框架,它允许我添加代码,但不能更改某些行为。 为了添加功能,我需要钩住一个特定的Ajax请求并将其重定向到我的URL(这样我就可以在那里更改数据并使用代理),或者在客户端更改请求的参数

使用JQuery可以做到这一点吗?如果是,怎么做

在更新文本输入框后触发原始事件


更新:


经过进一步检查,文本框似乎是使用JQuery自动完成插件操作的。我试图翻译这个ajax请求返回的单词。基本上,用户输入一种语言的文本,我想将其翻译成英语(翻译本身不是问题),因此自动完成将使用英语单词,然后我想从英语翻译成原始语言,显示在文本框和悬停div中。

由于安全原因,XMLHTTPRequest对象已经关闭,因此我认为没有简单的解决方案来解决您试图执行的操作

如果幸运的话,执行AJAX请求的部分被分解成一个函数,您可以使用prototype对象覆盖或重写该函数

如果没有,那么最好挂起文本框的更改事件

在jQuery中:

$('#textboxid').unbind();
$('#textboxid').change(function () {
    $.ajax({
         url: 'http://yourwebservice',
         data: {}, //the data to send to your webservice
         success: function (data) {
             //do your magic
         };
    })
});

使用谷歌翻译jquery插件。在过去,我曾非常成功地使用它来翻译文本:

我使用jQuery自动完成插件来做类似的事情,尽管在处理“封闭框架”的场景中不是这样

初始化autocomplete对象后,通过在该对象上使用.setOptions()方法,可以轻松完成所需的操作。因此,您的代码将如下所示(未经测试!伪代码!):

$(自动完成字段)。设置选项({
formatItem:函数(resultsRow、resultPosition、totalResults、inputWord){
//翻译要在此处下拉菜单中显示的菜单项
//是否可以扩展jQuery来处理$.translate(inputWord)?
返回“
  • ”+translatedWord+”
  • ”; } }).result(函数(事件,selectedItem){ //当用户在此处选择其中一项时,可以选择执行更多操作 //将所选内容翻译回另一种语言?我不知道。 返回translatedItem; });

    查看选项:

    您可以在AJAX请求的“beforeSend”中查看代码的实现情况?

    您是否查看了javascript中的观察者模式?我在我的博客上创建了一个例子。这可能对你有帮助


    @Oscar,在尝试使用你的代码后,我意识到我错了。请看我更新的Q。我本人从未使用过该插件,但大多数jQuery插件的编写方式都可以使用prototype对象覆盖函数。如果你检查插件代码,我相信你应该能够找到什么函数覆盖和添加你自己的翻译代码。
    $(autoCompletedField).setOptions({
       formatItem: function(resultsRow, resultPosition, totalResults, inputWord) {
          // translate your menu items to be displayed in the drop down menu here
          // perhaps extend jQuery to handle $.translate(inputWord) ?
          return "<li>"+translatedWord+"</li>";
       }
    }).result(function(event,selectedItem){
       // optionally do something more when the user selects one of those items here
       // translate the selectedItem back to another language? i dont know.
       return translatedItem;
    });