2017-03-23 3 views
0

私はクローム拡張機能をビルドしていますが、私はフォームスクリプトを使用してフォーム送信イベントを待ち受けています。私は自分の拡張機能をテストしていましたが、動作しなかったサイトでテストするまではかなりうまくいきました。それがうまくいかなかったのは、フォームボタンが実際に送信アクションのフォームボタンではないからです。実際には<a>のタグでhrefタグが「javascript :;」にリンクしているため、送信イベントはトリガーされません。リンクはフォーム内にあり、送信アクションのボタンタグではありません。ユーザーがフォームを送信しようとするたびにコンテンツスクリプトが起動するようにするにはどうすればよいですか?いいえ送信アクションなしでjavacriptでフォームを送信するためのイベントリスナー

答えて

1

一見簡単ですが、あなたが求めていることを達成するための確実な方法はありません。

document.getElementById('myform').addEventListener('submit', function(e) { 
 
    e.preventDefault(); 
 
    console.log(document.getElementById('sometext').value); 
 
    console.log('form submitted'); 
 
}); 
 

 
document.getElementById('notasubmitbutton').addEventListener('click', function(e) { 
 
    console.log(document.getElementById('sometext').value); 
 
});
<form id="myform"> 
 
    <input type="text" id="sometext"> 
 
    <input type="submit"> 
 
    <button id="notasubmitbutton" type="button">Submit 2</button> 
 
</form>

提出イベントをトリガする通常の送信ボタンがあります:

が、この考えてみましょう。次に、フォームからすべてのデータを収集するだけの伝統的な意味では提出しない別のボタンがあります。

誰かが自分のフォームを作成する可能性があることをすべて予測できる方法はないので、あなたが求めていることはできません。

+0

多くのページでコンテンツスクリプトとして実行されているため、あなたの提案はできません。そのため、私はその要素のIDを持っていません。 –

+0

@WaywardSemicolonこれは示唆ではありませんが、あなたがしようとしていることを確実に達成することが不可能な理由を示す例です。 – Schlaus

関連する問題