1

2番目のJavaScript関数を動作させることができません。[メールを送信]ボタンをクリックすると、2番目の関数が呼び出され、これら2つの値が渡されます。href行(最初の関数の最後から2番目の行)が正しくレンダリングされません。

<script>
function getvals(first,second) {
    alert(''+first+'');
    alert(''+second+'');
    mywindow=window.open('','Send Mail','height=200,width=400');
    mywindow.document.write("<FORM NAME='test'>");
    mywindow.document.write("<table align='center'><tr><td>User/Group: </td><td><input type='text' id='newfirst' name='iuser'></td></tr>");
    mywindow.document.test.iuser.value = ''+first+'';
    mywindow.document.write("<tr><td>Issue Key: </td><td><input type='text' id='newsecond' name='ikey'></td></tr>");
    mywindow.document.test.ikey.value = ''+second+'';
    mywindow.document.write("<tr><td><a href='javascript:popitup(document.getElementById('newuser').value,document.getElementById('newkey').value);'>Send Mail</a></td></tr></table>");
    mywindow.document.write("</FORM>");
}
function popitup(user,key) {
    alert(''+user+'');
    alert(''+key+'');
    var url = 'http:\/\/localhost:8080/plugins/servlet/mailservlet?receiver=' + user + '&issue=' + key;
    newwindow=window.open(url,'name','height=400,width=400');
    if (window.focus) {newwindow.focus()}
}
</script>
4

4 に答える 4

3

によって開かれたウィンドウではなく、親ウィンドウに記述されているため、関数popitupは呼び出されませんwindow.openwindow.opener関数呼び出しで試してください。

于 2012-12-17T09:44:27.173 に答える
1

ネストされた引用符の問題、正しくエスケープする必要があります:

 mywindow.document.write("<tr><td><a href='javascript:popitup(document.getElementById(\"newuser\").value,document.getElementById(\"newkey\").value);'>Send Mail</a></td></tr></table>");
于 2012-12-17T09:44:37.533 に答える
0

動いているのを見る

  function getvals(first,second) {
      alert(''+first+'');
      alert(''+second+'');
      mywindow=window.open('','Send Mail','height=200,width=400');
      mywindow.document.write("<FORM NAME='test'>");
      mywindow.document.write("<table align='center'><tr><td>User/Group: </td><td><input type='text' id='newfirst' name='iuser'></td></tr>");
      mywindow.document.test.iuser.value = ''+first+'';
      mywindow.document.write("<tr><td>Issue Key: </td><td><input type='text' id='newsecond' name='ikey'></td></tr>");
      mywindow.document.test.ikey.value = ''+second+'';
      mywindow.document.write("<tr><td><a href=\"javascript:opener.popitup(document.getElementById('newfirst').value,document.getElementById('newsecond').value);\">Send Mail</a></td></tr></table>");
      mywindow.document.write("</FORM>");
  }

  function popitup(user,key) {
      alert(''+user+'');
      alert(''+key+'');
      var url = 'http:\/\/localhost:8080/plugins/servlet/mailservlet?receiver=' + user + '&issue=' + key;
      newwindow=window.open(url,'name','height=400,width=400');
      if (window.focus) {newwindow.focus()}
  }

修正された問題:
1) window.open でのエスケープの問題
。2) 関数呼び出しは opener.popitup にする必要があります。3
) ユーザーとキーの ID 名が正しくありませんでした。

于 2012-12-17T09:58:40.780 に答える
0

このようにしないでください(ドキュメントの書き込み)

appendChild を使用し、そこに onclick-handler を追加します。

于 2012-12-17T09:59:44.303 に答える