プロが教えるわが家の防犯対策術!

こんにちは。質問です!

JavaScriptの確認ダイアログに「はい」「いいえ」「キャンセル」を出す関数がないので、
execScript()を使って、VBScriptのMsgBoxで出力することにしました。

以下、簡単なソースです。

function msgBox() {
  var msg1 = "次のページへ移ります。";
  var msg2 = "よろしいですか?";

  //msg1とmsg2を改行してMsgBoxに出力したい。
  var allMsg = msg1 + "vbCrLf" + msg2;  

  window.execScript("anser = MsgBox('" + allMsg + "',vbYesNoCancel,'確認')","VBScript");
}
としているのですが、
VBScriptの改行の"vbCrLf"が文字列扱いとなり、以下のようにそのまま出力されてしまいます。
「次のページへ移ります。vbCrLfよろしいですか?」

※VBのChr$(13) & Chr$(10)やChr(13) & Chr(10)でも試しましたが同じ結果です。

対処法をご存知の方がおりましたら、ご回答お願い致します。

A 回答 (1件)

 window.execScript("anser = MsgBox('次のページへ移ります。

'+vbCRLF+'よろしいですか?',vbYesNoCancel,'確認')","VBScript");
↑のようにexecScriptの第1引数が、
 anser = MsgBox('次のページへ移ります。'+vbCrLf+'よろしいですか?',vbYesNoCancel,'確認')
という文字列になるようにしてください。

あなたが提示したコードでは、allMsgを展開すると
 anser = MsgBox('次のページへ移ります。vbCrLfよろしいですか?',vbYesNoCancel,'確認')
となっているので、vbCrLfがそのまま表示されてしまうのは当然です。
    • good
    • 0
この回答へのお礼

こんばんは。ご回答ありがとうございました☆

よく見ると、javascriptで既に文字列となっていますね・・・

教えて頂いた通りにしたところうまくいきました。
ありがとうございました!

お礼日時:2007/07/18 19:37

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!