3

HTMLページから印刷するPerlスクリプトがあります。javascript を使用して警告メッセージを表示したいと考えています。アラート メッセージは、perl 変数で文字列として定義されます。perl 変数の値を引数として javascript 関数に渡そうとしていますが、うまくいきません。助けてください。

$perl_variable = "Welcome"; # alert msg

print <<START

<HTML>

some html code....

<p>Click the button to wait 3 seconds, then alert "Hello".</p>

<button onclick="myFunction('$perl_variable')">Try it</button>

<script>

function myFunction(var message){

setTimeout(function(){alert(message)},3000);

}

</script>

</HTML>

START
4

1 に答える 1

6

注意: この回答の前半は、最初に (編集前に) 質問に表示されたコードを参照しています。

必要がある:

  1. 正しい変数名を使用する
  2. JavaScript 文字列リテラルを生成する (データを引用することにより)

そのような:

myFunction('$perl_variable')

データに JavaScript 文字列リテラルで許可されていない文字 (改行など)、文字列リテラルで特別な意味を持つ文字 (区切りの引用符など)、または特別な意味を持つ文字が含まれている可能性があることに注意してください。 HTML の場合 (属性値を区切る引用符など)、適切なエスケープも実行する必要があります (最初は JS 用、次に HTML 用の 2 つのステップで)。


余談として、JS での関数定義も間違っています。

function myFunction(var path){

このvarキーワードは、FormalParameterList では使用できません。それは読むべきです:

function myFunction(path){
于 2013-03-22T19:18:05.993 に答える