2013-04-17 1 views
0

** 편집 : 감사, Shivan Raptor! 나는 "encodeURIcomponent()"를 잊어 버렸습니다! **Mailto : 변수의 대상

저는 두 가지 이메일 중 하나를 빠르게 이메일로 보내는 자바 스크립트 북마크릿을 만들고 있습니다. (나는 그것을 개조 할 수 있기 때문에 들여 쓰기 된 JS를 더 쉽게 보이도록 보여줄 것이다.) 그것은 프롬프트에 의해 입력되는 subject와 body에 대한 두 개의 변수를 사용한다.

var address = confirm("School email?"); 

     var sub = prompt("What is the subject?"); 

     var bod = prompt("What would you like the message to read?"); 

     if(address == true) { 
      window.location.assign("mailto:[email protected]?Subject=sub&body=bod"); 
      alert("Message sent to '[email protected]'."); 
     } 
     else { 
      window.location.assign("mailto:[email protected]?Subject=sub&body=bod"); 
      alert("Message sent to '[email protected]'."); 
     } 

유일한 문제는 변수 "sub"와 "bod"가 각각 제목과 본문으로 나타나는 것입니다. 따라서 코드는 Outlook을 열고 제목 "sub"및 "bod"와 함께 본문에 보낼 전자 메일을 준비합니다. Javascript 코드의 제목과 본문이 변수의 값일 수있는 방법이 있습니까? 기억하십시오, 그것은 북마크가 될 것이므로 어떤 HTML도있을 수 없습니다.

답변

3

넌 대체 할 수

window.location.assign("mailto:[email protected]?Subject=sub&body=bod"); 

으로 :

window.location.assign("mailto:[email protected]?Subject=" + encodeURIComponent(sub) + "&body=" + encodeURIComponent(bod)); 

너무 가변 sub bod 및 사용자 입력에 따라 동적 것이다. encodeURIComponent은 매개 변수를 인코딩하므로 사용자가 특수 문자를 입력하면 코드가 충돌하지 않습니다. 다음과 같이

-1

변경 코드,

var address = confirm("School email?"); 

    var sub = prompt("What is the subject?"); 

    var bod = prompt("What would you like the message to read?"); 

    if(address == true) { 
     window.location.assign("mailto:[email protected]?Subject=" + sub + "&body=" + bod); 
     alert("Message sent to '[email protected]'."); 
    } 
    else { 
     window.location.assign("mailto:[email protected]?Subject=" + sub + "&body=" + bod); 
     alert("Message sent to '[email protected]'."); 
    } 

희망이 작동합니다 :)

+4

'및'? 확실합니까 ? – Raptor

+0

Opps ... coldfusion을 사용하므로 &를 사용하여 ..... 대신 +로 수정되었습니다. – Sweety

+1

-1 값을 이스케이프 처리하지 않기 때문에 -1. – icktoofay