1

我的应用程序有消息框,就像我在 Facebook 上制作的一样,它们运行良好,但我开始不喜欢我实现消息框某些部分的方式。

每个消息框都有一个标题栏、该标题栏中的标题和一个可选的“X”按钮来关闭该框。每次创建一个框时,每个框都有一个默认正文(<p>消息元素和一个关闭按钮),但是您可以将任何 HTML 放入框的正文中,这就是我不确定的地方。

如果您忘记了密码,请在我的登录页面上单击“忘记密码?” 文本出现一个消息框,该框的主体是自定义 HTML(电子邮件地址的输入字段和提交按钮),并且当我创建该框时,该 HTML 是从 Javascript 源获取的。

例子:

....
....
var bodyHTML = 'Custom HTML for the body of this box';
var options = {'title': 'Password Recovery', 'bodyHTML': bodyHTML, 'hideBigCloseButton': true, 'removeOnClose': true};
createMessageBox('password-recovery-box', options, callback);

到这个应用程序结束时,我肯定会得到至少 7 或 8 个消息框,其中框的主体具有自定义 HTML,它可能只有 10 行 HTML 或者可能是 50 行,我不喜欢这个想法在 Javascript 文件的源代码中散布着如此多的 HTML。

我正在考虑使用 jQuery 向应用程序中的控制器发送一个 GET 请求(site.com/ajax/load-box-template/recover-password),这将给我返回 HTML 以放入主体自定义消息框?

后者是矫枉过正还是比第一种方式更好?两者都可以,但哪种方法更好?或者也许有比我提到的两种方法更好的方法?

任何帮助都会非常感谢。

4

1 回答 1

0

您可以使用 $.load() 函数从消息框中加载带有 HTML 的外部页面:您可以在 js 中使用之后将 HTML 放入隐藏的 div 中:

示例:HTML>

<div id="somediv" style="display: none">

js>

$('#somediv').load('someExternalHTML.html', function() {
    var options = {'title': 'Password Recovery', 'bodyHTML': $('#somediv').html(), 'hideBigCloseButton': true, 'removeOnClose': true};
createMessageBox('password-recovery-box', options, callback);
});

希望这有帮助。

巴勃罗。

于 2013-09-04T21:00:52.790 回答