是否有任何类(如goog.ui.dialog
)让我显示一个对话框,其内容可以通过ajax从另一个文件中获取?
- goog.ui.Dialog 是适合这个目标的类吗?
- 我应该通过其他基本类(例如
good.net.XHR
和)来实现它goog.ui.Popup
吗?
是否有任何类(如goog.ui.dialog
)让我显示一个对话框,其内容可以通过ajax从另一个文件中获取?
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.Dialog ,如下所示:
{"buttons": "goog.ui.Dialog.Buttons.OK_CANCEL",
"content": "<html><body><h1>Hello</h1></body></html>",
"title": "Hello World"}
这个例子不能直接工作:/