Кнопка HTML, чтобы открыть URL в новом окне - PullRequest
0 голосов
/ 21 февраля 2020

Я заполняю шаблон электронной почты, и у меня возникают некоторые проблемы с событием onclick кнопки.

Чего я хочу добиться, так это то, что при нажатии на кнопку должен открываться URL-адрес в новом окне а не новая вкладка.

В настоящее время, когда электронное письмо отправляется, оно теряет функцию события onclick. Любые рекомендации о том, как мне этого добиться?

Я также пытался создать кнопку в шаблоне html вместо замены тегов, как показано ниже, но все равно столкнулся с той же проблемой.

HTML Код:

    <p>
        Hi,
    </p>
    <p>
        A [JobType], to start on [JobStartDate]
        <br />
        Click here to view the job: [JobUrl]
    </p>
    <p>
        <b>Job Details:</b>
        <br />
        - Reference: [JobReferenceNumber]
        <br />
        - Checklist: [AnswerEvaluationName]
        <br />
        - Created by: [JobCreator]
        <br />
    </p>
    <p>
        Kind regards<br />
    </p>
    <p class="auto-style6">
        Please do not reply to this system generated email
    </p>
</body>
public void CreateEmailNotificationForNewJob()
{
   // Populate the Email Template
   string EmailRecipientTestingNotes = "";
   string EmailSubject = "";
   string EmailTemplate = EmailSender.LoadEmailTemplate("EmailNewJob.html");
   string EmailTo = "";
   string TestButton = ("<input type=\"button\" onclick=\"window.open('https://www.google.com/','mywin','width=500,height=500');\" >");

   EmailSubject = "Job/task ";
   EmailTemplate = EmailTemplate.Replace("[JobReferenceNumber]", "Reference");
   EmailTemplate = EmailTemplate.Replace("[AnswerEvaluationName]", "Daily Update");
   EmailTemplate = EmailTemplate.Replace("[JobStartDate]", "Today");
   EmailTemplate = EmailTemplate.Replace("[JobType]", "1");
   EmailTemplate = EmailTemplate.Replace("[CompanySiteName]", "");
   EmailTemplate = EmailTemplate.Replace("[SiteName]", "");
   EmailTemplate = EmailTemplate.Replace("[JobUrl]", TestButton);

   EmailTo = "test@test.co.za";

   try
   {
      // Send email code
   }
   catch (Exception ex)
   {
      // Add handling
   }
}

Ответы [ 3 ]

3 голосов
/ 21 февраля 2020

Большинство почтовых клиентов не разрешают выполнение JavaScript, как это делает браузер (обычно это делается из соображений безопасности).

Но если вы хотите создать ссылку на URL для отображения в электронном письме, вы можете просто использовать гиперссылку вместо кнопки. (Конечно, вы всегда можете использовать CSS, чтобы выглядел как кнопка, если вы sh.)

string TestButton = ("<a href='https://www.google.com/'>Click here</a>");
0 голосов
/ 24 февраля 2020

Просто используйте гиперссылку вместо кнопки, потому что почтовые клиенты не примут JavaScript. Конечно, вы можете использовать css, чтобы сделать его похожим на кнопку.

Кнопка:

string TestButton = ("<a class='button' href='https://www.google.com/'>Click here</a>");

Css:

.button {
font: bold 11px Arial;
text-decoration: none;
background-color: #EEEEEE;
color: #333333;
padding: 2px 6px 2px 6px;
border-top: 1px solid #CCCCCC;
border-right: 1px solid #333333;
border-bottom: 1px solid #333333;
border-left: 1px solid #CCCCCC;
}
0 голосов
/ 22 февраля 2020

Почтовые клиенты не принимают JavaScript. Лучшее, что вы можете сделать, - это использовать стандартную ссылку с целевым атрибутом, установленным на _blank:

string TestButton = ("<a href='www.blah.com' target='_blank'>link text</a>");

Сказав это, большинство почтовых клиентов все равно откроются на новой / пустой вкладке. Тем не менее, это полезно для тех, кто нажимает «просмотреть это письмо в вашем браузере» (например, на рабочем столе Outlook это генерируется автоматически).

...