9

YUI を使用してページをレンダリングします。ユーザーに応じて、レンダリング方法を変更する必要があります。この変更はパラメータ化できるものではなく、劇的で、ユーザーごとに異なります。

Javascript を動的に生成する方法を教えてください。

4

4 に答える 4

12

私は個人的にPHPファイルを使用して、いくつかの基本的なセッションと内部設定で構成されるJavaScriptオブジェクトを渡します。クライアントに情報を渡すことは過度に安全ではないため、ミッションクリティカルなことは何もありませんが、それはあなたと同じ原則に従う可能性があると思います探している。

同様に、これを使用して、クライアントがログインすると特定の要素を表示しますが、すべての認証はサーバー側で行われます。セッションハンドラーがPHPファイルにOKを与える場合、PHPヒアドキュメント文字列を使用してJavaScriptオブジェクトを出力します。それ以外の場合、何も出力しません。このオブジェクトの属性を使用して比較することも、PHPファイルの設定に基づいて特定のページのレンダリング方法についてJavaScriptのみを出力することもできます。

HTML:

<script src="common/javascript/php_feeder.php" type="text/javascript"></script>

PHP:

//my session handler authorisation check has been removed
//although you could place your own up here.

//assuming session was authorised
//set content type header
header("content-type: application/x-javascript"); 

$js_object = <<<EOT
var my_object = {
    my_attr: '{$my_attr}',
    my_attr2: '{$my_arrt2}',
    etc: '{$etc}'
}
EOT;

print($js_object);
于 2009-02-10T23:01:15.293 に答える
2

ユーザーのタイプに応じて、おそらく 2 つの別個の Java スクリプト ファイルを作成し、必要なファイルを含めることができます。

疑似コード

If user_type is One
    <Script src='one.js' type='javascript'></script>
else
    <Script src='other.js' type='javascript'></script>
End If
于 2009-02-10T07:07:37.543 に答える
0

ここで少し詳しく説明すると、より説明的で役立つ回答を得るのに最も確実に役立ちます。ただし、ifステートメント内で宣言された関数を簡単に使用して、さまざまなユーザーに明確に異なるエクスペリエンスを提供できることを念頭に置いてください。

非常に基本的な例:

<script>
function do_something(userType)
 {
if (userType == 'A')
 {
// everything you need to do for userType A
 }
if (userType == 'B')
 {
// everything you need to do for userType B
 }
 }
</script>
于 2009-02-10T07:24:23.290 に答える
0

JavaScript にはeval関数があるので、JavaScript を文字列変数に書き込む (そしてその文字列変数を呼び出す) ことで JavaScript を生成できると思います (試したことはありませんeval)。

于 2009-02-10T07:09:54.743 に答える