将HTML复制到电子邮件会更改从关联到绝对

时间:2017-02-18 13:11:19

标签: javascript html anchor html-email

每天早上,我们的主管已经要求发送一封电子邮件,其中包含前一天晚上的所有突发新闻。我们将它存储在我们的数据库中,但他最近遇到了连接问题所以他要求我们将所有内容复制到他的电子邮件中。

还明确要求我们使用锚点,以便他可以在电子邮件中导航,因为有些文章超长。

我们不允许从我们的服务器发送电子邮件,因此我不得不设置一个执行查询的页面,组装它,我们只需将其复制/粘贴到电子邮件中。

问题是,一旦HTML出现在电子邮件中,所有链接都会指向原始js创建它的页面。我需要链接到电子邮件页面内的所有内容。

我就像下面这样做

if (data.count > 0) {

    $.each(articles, function (i, s) {
        titles.push('<a href=\"#anchor-' + i + '\">' + s.title + '</a><br />');
        body.push('<a name=\"anchor-' + i + '\"></a>'
                    + '<p><strong>' + s.title + '</strong><br />'
                    + s.body + '</p>'
                    + '<p>[<a href=\"#top\">back to top</a>]</p>');
    });
    $("#" + tag).html(titles.join(''));

    $("#" + tag + 'Text').html(body.join(''));

}

 <section>
    <a name="top"></a>
    <div id="Transcripts"></div>
    <p></p>
    <div id="TranscriptsText"></div>
 </section> 

 <button class="btn btn-default btn-sm" onclick="CopyToClipboard('Email')" id="btnCopy"></button>

<script>

    function CopyToClipboard(containerid) {
        if (document.selection) {
            var range = document.body.createTextRange();
            range.moveToElementText(document.getElementById(containerid));
            range.select().createTextRange();
            document.execCommand("Copy");

        } else if (window.getSelection) {
            var range = document.createRange();
            range.selectNode(document.getElementById(containerid));
            window.getSelection().addRange(range);
            document.execCommand("Copy");
            //alert("text copied")
        }
    }

</script>

0 个答案:

没有答案