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);

このアプリケーションの終わりまでに、ボックスの本文にカスタム HTML が含まれるメッセージ ボックスが少なくとも 7 つまたは 8 つになることは間違いありません。10 行しかない場合もあれば、50 行ある場合もありますが、私はその考えが好きではありません。 Javascript ファイルのソースに非常に多くの HTML が散らばっています。

jQuery を使用して、GET 要求をアプリケーション (site.com/ajax/load-box-template/recover-password) のコントローラーに送信することを考えていました。カスタムメッセージボックス?

後者はやり過ぎですか、それとも最初の方法よりも優れていますか? どちらもうまくいきますが、どちらがより良い方法ですか?または、私が言及した2つの方法よりも良い方法がありますか?

どんな助けでも大歓迎です。

4

1 に答える 1

0

$.load() 関数を使用して、メッセージ ボックスから HTML を含む外部ページを読み込むことができます。js で使用できるようになった後、非表示の div に HTML を配置します。

例: 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 に答える