2017-11-27 19 views
-1

ポップアップウィンドウからメールを送信したいのですが、しか使えないので、は利用できません。ポップアップウィンドウからメールを送信したい

これは私がこれまでに書いたコードです:

<!DOCTYPE html> 
<html> 

<head> 
    <style> 
    h2 { 
     font-size: 20pt; 
     font-family: arial; 
     color: black; 
     background-color: blue; 
     letter-spacing: 2.5pt 
    } 

    fieldset { 
     border: 5px solid blue 
    } 

    legend { 
     padding: 0em 0.2em; 
     border: 1px solid blue; 
     color: green; 
     font-size: 30%; 
     text-align: center; 
    } 
    </style> 
    <title> ergasthrio 4 JavaScript</title> 
    <meta charset="utf-8"> 
</head> 

<body> 
    <form name="myForm" id="form1" onsubmit="return validateForm()" method="post"> 
    <fieldset> 
     <legend> 
     <h2>Communication Form</h2> 
     </legend> 

     Name*: <input type="text" name="fname" id="fname"><br> Last Name*:<input type="text" name="lname" id="lname"><br> Email*: 
     <input type="email" name="email" id="email"><br> Message*: 
     <br><textarea rows="6" cols="60" name="message" id="message" form="form1"> </textarea><br> 
     <input type="submit" id="submitbutton" value="ΑΠΟΣΤΟΛΗ"> 
     <input type="reset" id="resetbutton" value="ΑΚΥΡΩΣΗ"> 
     <p style="text-align: center;">ΤΑ ΣΤΟΙΧΕΙΑ ΜΕ * ΕΙΝΑΙ ΥΠΟΧΡΕΩΤΙΚΑ</P> 
    </fieldset> 
    </form> 
    <script> 
    function send() { 
     window.open('mailto:[email protected]?subject=subject&body=body'); 
    } 

    function validateForm() { 
     var x = document.forms["myForm"]["fname"].value; 
     var y = document.forms["myForm"]["lname"].value; 
     var z = document.forms["myForm"]["email"].value; 
     var e = document.forms["myForm"]["message"].value; 
     if (x == "" || y == "" || z == "" || e == "") { 
     alert("Fill in the blanks"); 
     } else { 
     var confirmwindow = window.open("", "_black", "width=560,height=190"); 
     confirmwindow.document.writeln("<h3>Σιγουρα θελετε να στειλετε την παρακατω φορμα?</h3>"); 
     confirmwindow.document.write("<b>Name*: </b>" + x + "<br>"); 
     confirmwindow.document.writeln("<b>Last Name*: </b>" + y + "<br>"); 
     confirmwindow.document.writeln("<b>Email*: </b>" + z + "<br>"); 
     confirmwindow.document.writeln("<b>Message*: </b><br>" + e + "<br><br>"); 
     confirmwindow.document.write("<input type='submit' onclick='send()' id='submitbutton' value='ΑΠΟΣΤΟΛΗ'>" + " "); 
     confirmwindow.document.write("<input type='button' id='resetbutton' value='ΑΚΥΡΩΣH'>"); 
     } 
    } 
    </script> 

ポップアップのボタンがまったく機能していないようなので、私の問題は、特にこのラインconfirmwindow.document.write("<input type='submit' onclick='send()' id='submitbutton' value='ΑΠΟΣΤΟΛΗ'>"+ " "); です。

私は間違って何をしたのか、私はそれを修正するために何ができるのですか?

+0

は、送信機能は、親ウィンドウに、ポップアップウィンドウに存在しない(easiliy固定)欠けている – charlietfl

+0

私はあまりにもポップアップウィンドウでそれを置くことができる方法 – dimpap

答えて

0

メモとアイデア。

  1. サーバーとページの更新を行うに提出された通信形態を防ぐためにvalidateFormからfalseを返します。

    function validateForm() { 
        // existing code ... 
    
        return false; 
    } 
    

    別の方法としては、「ボタン」に入力タイプを変更し、validateFormを呼び出すためのonclickハンドラを追加することができます。

  2. send機能は、ポップアップではなく、開始ウィンドウで定義されています。あなたは、コンテキストとして開口窓を使用してsend機能を呼び出すことが確認ウィンドウに

    onclick="opener.send()" 
    

    onclick="send()" 
    

    を置き換えることができます。確認ウィンドウで「送信」タイプ入力を使用すると、要素がフォーム内になく、何も送信しないため、誤解を招きます。 ボタンの入力を使用して要素の使用状況を反映させることができます。

  3. 確認ページのリセットボタンには何もするためのクリックハンドラがありません。 (終了する)。

  4. "mailto:" URLの成功は、依然としてユーザーのブラウザ設定と電子メールクライアントの機能によって決まります。私がインストールした(非常に古い)電子メールクライアントがエラーをスローするセットアップでは動作しません。何人のユーザーが問題を抱えているかは、私が答えることのできるものではないため、今後のいくつかの研究には利点があります。

  5. "mailto"リンクのメールアドレスを収集して、スパマーによって配布されたメーリングリストに追加することができます。 「mailto:urlsのメールアドレスで迷惑メールを拾うことができます」などの検索キーワードは、さらなる情報と議論を促します。

  6. エンド</body></html>タグが

+0

電子メールについて何ができるかについてのアイデア...あなたが言ったことの残りの部分を修正したといいました。 – dimpap

+0

簡潔にするために 'mailto:' URLを使いたい場合は、ポイント4を無視してください。多くのユーザーが、すべてのユーザーではありません。しかし、電子メールアドレスを難読化して収穫できないようにする方法を研究してください。解決策が保証されていない場合、使用されているメールアドレスがスパムアウトされた場合は、電子メールアドレスを変更することを検討してください。最後に、サーバーを使用して未開示の受信者にメッセージを電子メールで送信することは、電子メールアドレスを秘密にする最も安全な方法です。 – traktor53

関連する問題