ユーザーが画像をクリックするたびに、「宛先」を指定して新しいOutlookメールテンプレートを開きます。 javascriptを読み込むたびに新しいメールテンプレートを開く必要があるたびに、HTMLページ(イメージにリンク)にコードを返します。しかし、機能は機能していません。コードの何が問題なのか教えてください。
body onLoad="redirect()"
script language="JavaScript"
function redirect()
var email = "[email protected]"
var mailto_link = 'mailto:' + email
window = window.open(mailto_link, 'emailWindow')
if (window && window.open && !window.closed)
window.close()
JQueryは必要ありません。そして、新しいウィンドウを開く必要はありません。ブラウザにHTTPデータを返さないプロトコル(mailto:
、irc://
、magnet:
、ftp://
(<-実装方法によって異なりますが、通常、ブラウザには組み込みのFTPクライアント)は、現在のコンテンツを失うことなく、同じウィンドウで照会できます。あなたの場合:
function redirect()
{
window.location.href = "mailto:[email protected]";
}
<body onload="javascript: redirect();">
またはただ直接
<body onload="javascript: window.location.href='mailto:[email protected]';">
jsFiddleのコード を見つけてください。 jQueryを使用して、リンクのhrefを変更します。代わりに他のライブラリを使用できます。動作するはずです。
HTML
<a id="emailLnk" href="#">
<img src="http://ssl.gstatic.com/gb/images/j_e6a6aca6.png">
</a>
JS
$(document).ready(function() {
$("#emailLnk").attr('href',"mailto:[email protected]");
});
UPDATE
IDがクリックイベント中にのみ認識される場合の別のコードサンプル
$(document).ready(function() {
$("#emailLnk").click(function()
{
alert('h');
document.location.href = "mailto:[email protected]";
});
});
JavaScriptを使用すると、次のような方法で「オンザフライ」でリンクを作成できます。
var mail = document.createElement("a");
mail.href = "mailto:[email protected]";
mail.click();
これは、現在のウィンドウのコンテンツを失うことなく、マシンにインストールされているメールクライアントにブラウザによってリダイレクトされます...「jQuery」のようなAPIは必要ありません。
私は単にこのjavascriptコードを使用しました(jqueryを使用していますが、必ずしも必要ではありません):
$( "#button" ).on( "click", function(event) {
$(this).attr('href', 'mailto:[email protected]?subject=hello');
});
ユーザーがリンクをクリックすると、クリックされた要素のhref属性が置き換えられます。
デフォルトのcomportment(event.preventDefault)を妨げないように注意してください。hrefをどこに行けばよいのか、そのままにしておく必要があります。
ロボットはそれを見ることができず、アドレスはスパムから保護されていると思います。
単純なmailto
を使用できます。単純なマークアップについては以下を参照してください。
<a href="mailto:[email protected]">Click here to mail</a>
クリックすると、Outlookまたは設定したメールクライアントが開きます。