Javascript 使用Google闭包库的Ajax窗口(弹出窗口)

Javascript 使用Google闭包库的Ajax窗口(弹出窗口),javascript,user-interface,google-closure-library,Javascript,User Interface,Google Closure Library,是否有任何类(如goog.ui.dialog)可以让我显示一个对话框,它的内容可以通过ajax从另一个文件中获取 goog.ui.Dialog是实现此目标的合适类吗 我是否应该通过其他基本类来实现它,比如good.net.XHR和goog.ui.Popup 您可以扩展goog.ui.dialog并获取内容 一个简单的例子可以帮助您: my.ui.Dialog = function(opt_iframe) { goog.ui.Dialog.call(this, null, opt_ifram

是否有任何类(如
goog.ui.dialog
)可以让我显示一个对话框,它的内容可以通过ajax从另一个文件中获取

  • goog.ui.Dialog是实现此目标的合适类吗
  • 我是否应该通过其他基本类来实现它,比如
    good.net.XHR
    goog.ui.Popup

您可以扩展goog.ui.dialog并获取内容

一个简单的例子可以帮助您:

my.ui.Dialog = function(opt_iframe) {
  goog.ui.Dialog.call(this, null, opt_iframe);

  this.xhr_  = new goog.net.XhrIo();
  this.xhr_.addEventListener(goog.net.EventType.COMPLETE,
                             this.onComplete_, false, this);

  goog.events.listen(this, goog.ui.Dialog.EventType.SELECT,
                     this.dispatch_, false, this);
};
my.ui.Dialog.prototype.buildWindow_ = function (responseJson) {
  this.setTitle(responseJson.title);
  this.setContent(responseJson.content);
  this.setButtonSet(eval(responseJson.buttons));
};
my.ui.Dialog.EventType = {
  'COMPLETE': 'complete'
};
my.ui.Dialog.prototype.onComplete_ = function (event) {
var json = this.xhr_.getResponseJson ()
    this.buildWindow_ (json);
    this.reposition ();
};
my.ui.Dialog.prototype.send = function (uri, method, post_data) {
  this.xhr_.send(uri, method, post_data, null, {'X-DIALOG':'AJAX'});
};
goog.inherits (my.ui.Dialog, goog.ui.Dialog);
这就是使用json中的响应来构建ui。对话框如下:

{"buttons": "goog.ui.Dialog.Buttons.OK_CANCEL", 
 "content": "<html><body><h1>Hello</h1></body></html>", 
 "title": "Hello World"}
{“按钮”:“goog.ui.Dialog.buttons.OK\u CANCEL”,
“内容”:“你好”,
“标题”:“你好,世界”}

此示例无法直接工作://

“来自另一个文件”-您是指在clojure应用程序外部运行的脚本(而不是应用程序中的javascript)?不在应用程序内部,而是服务器端文件。