2017-09-20 21 views
1

は、私が今zhtmlファイルに持っているものです。なぜzscriptのJava String値をZKのjavascriptに渡すことができないのですか?ここ

<zscript> 
    String sample="123456"; 
</zscript> 
<script> 
    function called(){ 
    var jsample=${sample}; 
    alert(jsample); 
    } 
</script> 

サンプルがintまたはブールや数字が、何もない文字列であれば、それは関数を呼び出すfine.I作品、警告ボックスが表示ポップアップ表示します値、一連の数字または真/偽のいずれか。

しかし、サンプルが

String sample="q123456"; 

のように、文字が含まれている場合は、私がいることを引き起こしているもの好奇心が強い、それは関数を呼び出すworking.I停止しますが、何も起こりません、それは

var jsample=${sample}; 

で停止それは基本的なjavascriptのように感じた。

多くのありがとうございます。

答えて

1

はい、基本的なJavaScriptです。しかし、あなたはコードが${sample};はZULパーサーによって解決された後にどのように見えるかを想像する必要があります。

var jsample=123456; // jsample is a number, value 123456 
var jsample=false; // jsample is a boolean, value false 
var jsample=q123456; // jsample is something, value whatever q123456 is 

あなたはJavaScriptがq123456はそれがを見つけることができない変数名、と考えていることがわかります。それはあなたがコンソールを開くと教えてくれるでしょう、例えばChromeは "Uncaught ReferenceError:asdasdは定義されていません"と言っています。この問題を解決するには

、文字列にsampleをラップし、その結果のJavaScriptコードは次のようになりますどの

var jsample="${sample}"; 

にzscriptのを変更します。

var jsample="123456"; 
var jsample="false"; 
var jsample="q123456"; 

を使用すると、特定のタイプが必要な場合は、 JavaScriptは自動的にjsampleに変換されるか、isNaNなどのチェックを使用して手動で行います。

+0

「$ {sample}」 –

+0

@RCの前後に二重引用符を付けるだけです。それは提案のおかげでもっとよかったです。 –