0

JavaScript を含む NSString を作成します。

NSString *   someString =@"<!DOCTYPE html>\n        <html>\n       <body> \n    


    <h1>My Web Page</h1> \n       <p id=\"myPar\">I am a paragraph.</p><div id=\"myDiv\">I am a div.</div> \n       <p>        <button type=\"button\" onclick=\"myFunction()\">Try it</button> \n       </p>        <script type=\"text/javascript\">        function myFunction()        {            document.getElementById(\"myPar\").innerHTML=\"Hello Dolly\";            document.getElementById(\"myDiv\").innerHTML=\"How are you?\";\n        }        </script>       <p>When you click on \"Try it\", the two elements will change.</p>       \n </body> \n       </html>\n";

その後、その文字列を使用してメール本文を設定します。

        MFMailComposeViewController* Apicker = [[MFMailComposeViewController alloc] init];
            if (Apicker != nil)
            {


                Apicker.mailComposeDelegate = self;
    }
     [Apicker setMessageBody:someString isHTML:YES];
 [self presentModalViewController:Apicker animated:YES];

私は電子メールを送ります。

私の問題は、そのメールを確認してTry itボタンを押しても、機能しないことです。

someStringオブジェクトで単純な HTML を使用すると、機能します。

電子メールで JavaScript が機能しないのはなぜですか?

4

2 に答える 2

3

ほとんどの電子メール クライアント (iPhone を含む) は、セキュリティ上の理由から JavaScript をサポートしていません。

たとえば、悪意のあるスクリプトを電子メールに埋め込んで、電子メールが読まれた場合に送信者に報告し、スパマーが電子メール アドレスを確認できるようにする可能性があります。

CSS 疑似クラスを使用する:focusと、CSS で同様のことを実現できます。

これには制限がありますが (HTML 要素の前ではなく後にボタンを配置できないなど)、受信者に Web ページへのトラフをクリックするように求める唯一の代替手段です。電子メールは HTML と CSS に限定されます。

HTML :

<button type="button">Try it</button>
<p id="myPar"><span class=oldtext>I am a paragraph.</span><span class=newtext>Hello Dolly</span></p>


<div id="myDiv"><span class=oldtext>I am a div.</span><span class=newtext>How are you?</span></div>

<p>When you click on "Try it", the two elements will change.</p>       

CSS:

/*
    Default state
*/
button+#myPar .oldtext,button+*+#myDiv .oldtext{

    display:inline;/* Not required because <span> tags are inline by default. Use if you use block-level elements and / or elements that are styled as block-level elements */
}

button+#myPar .newtext,button+*+#myDiv .newtext{

    display:none;
}


/*
    Button click effect
*/
button:focus+#myPar .oldtext,button:focus+*+#myDiv .oldtext{

    display:none;
}

button:focus+#myPar .newtext,button:focus+*+#myDiv .newtext{

    display:inline;
}

JSFiddle でこの例を見る

: can I useによると、この例で使用されている CSS は iOS 互換です。IE < 9 では動作しません。

于 2012-10-15T10:54:52.677 に答える
1

ほとんどの電子メール クライアント (iPhone を含む) は、セキュリティ上の理由から JavaScript をサポートしていません。

たとえば、悪意のあるスクリプトを電子メールに埋め込んで、電子メールが読まれた場合に送信者に報告し、スパマーが電子メール アドレスを確認できるようにする可能性があります。

于 2012-10-15T09:12:10.793 に答える