挂钩并更改ajax请求

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

这可以用JQuery吗? 如果是这样,怎么样?

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


更新:

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

我已经使用jQuery自动完成插件来做类似的事情,虽然不是在我处理“封闭框架”的情况下。

初始化后,您可以通过在自动完成对象上使用.setOptions()方法轻松完成所需的操作。 所以你的代码会像这样(未经测试!伪代码!):

$(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 "
  • "+translatedWord+"
  • "; } }).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; });

    查看选项: http : //docs.jquery.com/Plugins/Autocomplete/autocomplete#url_or_dataoptions

    我认为没有一个简单的解决方案可以解决您的问题,因为出于安全原因,XMLHTTPRequest对象已经关闭了。

    如果幸运的话,执行AJAX请求的部分会被分解为一个可以使用原型对象覆盖或覆盖的函数。

    如果没有,你可能最好挂钩文本框的更改事件。

    在jQuery中:

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

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

    http://www.versomas.com/dannyg/post/Observer-pattern-in-Javascript.aspx

    使用谷歌翻译jquery插件。 我过去非常成功地使用它来翻译文本: http : //code.google.com/p/jquery-translate/

    你可以看一下在AJAX请求的“beforeSend”中实现你的代码吗?