0

こんにちは、私は Java スクリプトの初心者です。値にハイフンが含まれる文字列変数を関数パラメーターとして渡す際に問題が発生します。火災のバグは、「識別子は数値リテラルの直後に始まる」というエラーをスローします

flexigrid を使用してデータを表示しています。各行に画像を配置しました。その画像をクリックすると、Java スクリプト関数が呼び出されます。フレキシグリッドのレコード内容の設定は以下のようにjavaで行います。

record.put("view","<img src='images/ic_text_document.png' onclick='view_content("+objid+")'/> ");

変数 objid の値は、c2692d22-a407-4d38-85ee-5c16f25bcce7 のようなものです。Firebug は、14 桁目 (上記の例では 4) を指すことにより、数値リテラルのエラーの直後に識別子の開始をスローします。

他の投稿で提案されているように、引用符の異なる組み合わせで変数を渡そうとしましたが、うまくいきませんでした。誰かがこれで私を助けることができますか?

4

3 に答える 3

1

html を生成する前に objid をエスケープする必要があり、javascript で値を使用するときはエスケープを解除する必要があります。

または、このようなことをします......

record.put("view","<img src='images/ic_text_document.png' onclick='view_content("+ COUNTER + ")'/><div style='display:none' id='objid"+ COUNTER + "'>" + objid + "</div> ");

ここで、counter は、obj/objid ごとに異なる数値/値です。そしてjsで:

function view_content(objidcounter){    
var real_objid = document.getElementById('objid' + objidcounter).innerText;
...
...

}
于 2012-04-10T12:17:39.717 に答える
0

objid次のように値を引用する必要があります

record.put("view","<img src='images/ic_text_document.png' onclick='view_content(\""+objid+"\")'/> ");
于 2012-04-10T11:58:22.947 に答える
0

レンダリングすると次のように表示されるため

view_content(FOOBARSTRING)

そこに引用符が必要です。

record.put("view","<img src='images/ic_text_document.png' onclick='view_content(\""+objid+"\")'/> ");

理想的には、onclick ハンドラーを HTML マークアップに直接追加することはありません。

于 2012-04-10T11:59:41.217 に答える