javascript - 将 HTML 放入 Javascript 源中还是使用 AJAX 检索 HTML?

标签 javascript jquery html ajax

我的应用程序有消息框,比如 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 行,但我没有就像将如此多的 HTML 分散在 Javascript 文件源中的想法一样。

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

后一种方法是不是太过分了或者比第一种方法更好?两者都可以,但哪一个更好?或者也许有比我提到的两种方法更好的方法?

任何帮助都会非常感谢。

最佳答案

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

示例: 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);
});

希望这有帮助。

巴勃罗。

关于javascript - 将 HTML 放入 Javascript 源中还是使用 AJAX 检索 HTML?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/18623470/

相关文章:

javascript - 获取数据后返回 JavaScript

javascript - 使用 if 语句更改 javascript 中的 location.href

css - 如何让网页背景图片的滚动速度变慢

javascript - 如何处理 Parse Promise 错误,以便它们不会继续执行代码?

javascript - 使用 Facebook Graph API 获取用户好友列表

javascript - 如何检查值是否为空?

javascript - Css 或 Jquery 中图像的动画光反射

jquery - 如何使用相同的名称让复选框表现得像单选按钮

javascript - 计算每个 div 的总高度

javascript - 正则表达式 CSS 完整路径