2017-02-23 3 views
0

ダイナミック<a />タグをonclickイベントで作成しました。このイベントはパラメータとしてオブジェクトを含む関数を呼び出しますが、リンク上でonclickエラーが発生しましたSyntaxError:コードが二もみ後onClickイベント仕上げ思いますのでダイナミクスがパラメータとしてリンクパスオブジェクトを作成しました

<script type="text/javascript"> 

document.write('<a href="javascript:void(0)" onClick="javascript:callconfirm(b1checkConfirm.bind({p1: Hello, p2:World}),\"Hello\")" >Click</a>'); 
</script> 

:あなたの"をエスケープする必要があるスクリプト

<head> 
    <link href="https://maxcdn.bootstrapcdn.com/bootstrap/3.3.7/css/bootstrap.min.css" rel="stylesheet"/> 
<link href="https://cdnjs.cloudflare.com/ajax/libs/bootstrap3-dialog/1.34.7/css/bootstrap-dialog.min.css" rel="stylesheet"/> 
<script src="https://code.jquery.com/jquery-3.1.1.min.js"></script> 
<script src="https://maxcdn.bootstrapcdn.com/bootstrap/3.3.7/js/bootstrap.min.js"></script> 
<script src="https://cdnjs.cloudflare.com/ajax/libs/bootstrap3-dialog/1.34.7/js/bootstrap-dialog.min.js"></script> 
<script> 

function callconfirm(cb,pmessage) 
{ 
    // var isConfirmed 
    BootstrapDialog.confirm({ 
      title: 'WARNING', 
      message: pmessage, 
      type: BootstrapDialog.TYPE_WARNING, // <-- Default value is BootstrapDialog.TYPE_PRIMARY 
      closable: false, // <-- Default value is false 
      draggable: false, // <-- Default value is false 
      btnCancelLabel: 'Do not drop it!', // <-- Default value is 'Cancel', 
      btnOKLabel: 'Drop it!', // <-- Default value is 'OK', 
      btnOKClass: 'btn-warning', // <-- If you didn't specify it, dialog type will be used, 
      callback:cb /*function(result) { 
       // result will be true if button was click, while it will be false if users close the dialog directly. 
       if(result) { 
        return true; 
       }else { 
        return false; 
       } 
      }*/ 
     }); 


} 


function b1checkConfirm(result,id) 
{ 
    //callconfirm(); 
    console.log("B1 click and result is "+result); 
    console.log(this.p1); 
    console.log(this.p2); 
} 

</script> 
</head> 
<body> 

<script type="text/javascript"> 

document.write('<a href="javascript:void(0)" onClick="javascript:callconfirm(b1checkConfirm.bind({p1: Hello, p2:World}),"Hello")" >Click</a>'); 
</script> 

</body> 

答えて

0

あなたの問題をするdocument.writeのこの部分です:

b1checkConfirm.bind({p1: Hello, p2:World}),"Hello" 

こんにちは世界はエスケープする必要があり、彼らはの一部であるため、あなたが書くかもしれないHTML:

b1checkConfirm.bind({p1: &apos;Hello&apos;, p2: &apos;World&apos;}),&apos;Hello&apos; 

スニペット:

function callconfirm(cb,pmessage) 
 
{ 
 
    // var isConfirmed 
 
    BootstrapDialog.confirm({ 
 
     title: 'WARNING', 
 
     message: pmessage, 
 
     type: BootstrapDialog.TYPE_WARNING, // <-- Default value is BootstrapDialog.TYPE_PRIMARY 
 
     closable: false, // <-- Default value is false 
 
     draggable: false, // <-- Default value is false 
 
     btnCancelLabel: 'Do not drop it!', // <-- Default value is 'Cancel', 
 
     btnOKLabel: 'Drop it!', // <-- Default value is 'OK', 
 
     btnOKClass: 'btn-warning', // <-- If you didn't specify it, dialog type will be used, 
 
     callback:cb /*function(result) { 
 
     // result will be true if button was click, while it will be false if users close the dialog directly. 
 
     if(result) { 
 
     return true; 
 
     }else { 
 
     return false; 
 
     } 
 
     }*/ 
 
    }); 
 

 

 
} 
 

 

 
function b1checkConfirm(result,id) 
 
{ 
 
    //callconfirm(); 
 
    console.log("B1 click and result is "+result); 
 
    console.log(this.p1); 
 
    console.log(this.p2); 
 
} 
 

 
document.write('<a href="javascript:void(0)" onClick="javascript:callconfirm(b1checkConfirm.bind({p1: &apos;Hello&apos;, p2: &apos;World&apos;}),&apos;Hello&apos;)" >Click</a>')
<link href="https://maxcdn.bootstrapcdn.com/bootstrap/3.3.7/css/bootstrap.min.css" rel="stylesheet"/> 
 
<link href="https://cdnjs.cloudflare.com/ajax/libs/bootstrap3-dialog/1.34.7/css/bootstrap-dialog.min.css" rel="stylesheet"/> 
 
<script src="https://code.jquery.com/jquery-3.1.1.min.js"></script> 
 
<script src="https://maxcdn.bootstrapcdn.com/bootstrap/3.3.7/js/bootstrap.min.js"></script> 
 
<script src="https://cdnjs.cloudflare.com/ajax/libs/bootstrap3-dialog/1.34.7/js/bootstrap-dialog.min.js"></script>

1

の終わりを得ましたあなたのハローのトン"

+0

あなたが実際に '\ '' document.write'は '\」を取り除きます'とコードが同じ問題に戻ってくる ''のでonclick'使用する必要がありますまもなく終了。 – bobjoe

+0

それは動作する可能性があります。 OPがそれを試してみましょう、 – Nicolas

関連する問題