스택 오버플로에 오래 된 스레드는 흔한 이메일을 채우기 위해 자바 스크립트를 사용하는 방법에 대해 설명합니다 :수 없습니다
Sending emails with Javascript
나는 기술을 적용에 관심이 있지만, 그것을 얻을 수 없었다 일하다.
아래 코드에서 makecontact() 메서드에서 false를 반환 할 때 중단 점을 설정하고 기록한 URL을 보면 괜찮아 보입니다.
하지만 브라우저에서 이메일 클라이언트가 열리지 않습니다.
제출 버튼에서 href에 동일한 URL을 하드 코딩하면 전자 메일 클라이언트가 시작됩니다.
href가 작동하지 않는 이유는 무엇입니까?
답변 : 잘못된 href입니다.
고정 버전 :
<!-- TODO: Validate name and text fields and don't allow submit until they are valid. Limit total mailto URL length to 2000. -->
<form name="contact">
<br/>Reason for contact:
<br/>
<input type="radio" name="reason" value="Product Inquiry/Presales Questions" checked="checked"/>Product Inquiry/Presales Question<br/>
<input type="radio" name="reason" value="Support/Warranty"/>Support/Warranty<br/>
<input type="radio" name="reason" value="Feedback"/>Feedback<br/>
<input type="radio" name="reason" value="Other"/>Other<br/>
<input type="text" name="name" id="name"/>Your name:</div>
<textarea name="contacttext" rows="20" cols="60" id="contacttext"></textarea>
<button id="submit">Submit</button>
</form>
<script type="text/javascript" id="contactjs">
<!--
var submit = document.getElementById("submit");
function getreason() {
var radios, i, radio;
radios = document.getElementsByName("reason");
for (i = 0; i < radios.length; i += 1) {
radio = radios[i];
if (radio.checked) {
break;
}
}
return encodeURIComponent(radio.value);
}
function makecontact(e) {
var subject, name, text;
subject = getreason();
name = document.getElementById("name").value;
text = document.getElementById("contacttext").value;
body = "From: '" + name + "', Content: '" + text + "'";
body = encodeURIComponent(body);
document.location.href = "mailto:[email protected]?Subject=" + subject + "&Body=" + body;
console.log(document.location.href);
e.preventDefault();
return false;
}
if (submit.addEventListener) {
submit.addEventListener("click", makecontact, true);
} else if (form.attachEvent) {
submit.attachEvent("onclick", makecontact);
} else {
submit.click = makecontact;
}
//-->
</script>
</div>
올바른 해결책을 답으로 추가하고 게시물에 편집해서는 안됩니다. –