このファンクションは、属性と、その属性の二重引用符で囲まれたエスケープされたテキストを戻します。
注意:
このファンクションは、HTMLタグはエスケープしません。HTMLタグがJavaScriptオブジェクトの属性の割当てに悪影響を与えないようにするだけです。XSS(クロスサイト・スクリプティング)攻撃を防ぐには、SYS.HTF.ESCAPE_SC
をコールして、HTMLページに文字列を差し込む際に、埋め込まれたJavaScriptコードが実行されるのを防ぐ必要もあります。
構文
APEX_JAVASCRIPT.ADD_ATTRIBUTE ( p_name IN VARCHAR2, p_value IN VARCHAR2, p_omit_null IN BOOLEAN:=TRUE, p_add_comma IN BOOLEAN:=TRUE) RETURN VARCHAR2;
パラメータ
表14-2 ADD_ATTRIBUTEのシグネチャ1のパラメータ
パラメータ | 説明 |
---|---|
|
JavaScriptオブジェクト属性の名前。 |
|
JavaScriptオブジェクト属性に割り当てられるテキスト。 |
|
TRUEを設定すると、 |
|
TRUEを設定すると、戻される値の後にカンマが追加されます。 |
例
addEmployee
JavaScriptファンクションへのコールを追加し、様々な属性値を持つJavaScriptオブジェクトを渡します。このコールの出力は、次のようになります。
addEmployee( {"FirstName":"John", "LastName":"Doe", "Salary":2531.29, "Birthday":new Date(1970,1,15,0,0,0), "isSalesman":true });
最後の属性では、False(p_omit_null
)とFALSE(p_add_comma
)という組合せのパラメータを使用して、最後の属性が常に生成されるようにする必要があります。これによって、後続のカンマを追加する必要があるかどうかについて、他のパラメータを調べる必要がなくなります。
apex_javascript.add_onload_code ( 'addEmployee('|| '{'|| apex_javascript.add_attribute('FirstName', sys.htf.escape_sc(l_first_name))|| apex_javascript.add_attribute('LastName', sys.htf.escape_sc(l_last_name))|| apex_javascript.add_attribute('Salary', l_salary)|| apex_javascript.add_attribute('Birthday', l_birthday)|| apex_javascript.add_attribute('isSalesman', l_is_salesman, false, false)|| '});' );