Проблема в том, что this.like
внутри функции likeGame()
не совпадает с this.like
в функции Homepage()
, потому что функция имеет свою область видимости. Один из способов решить эту проблему - использовать функции-стрелки в качестве методов. Теперь this
всегда будет ссылаться на Homepage
.
function Homepage() {
this.like = document.getElementById("like");
this.dislike = document.getElementById("dislike");
this.likeGame = (event) => {
if (this.like.style.display == "none") {
this.dislike.style.display = "none"
this.like.style.display = "block";
}
event.preventDefault();
};
this.dislikeGame = (event) => {
if (this.dislike.style.display == "none") {
this.like.style.display = "none"
this.dislike.style.display = "block";
}
event.preventDefault();
};
this.setListeners = () => {
console.log('in listen');
document.getElementById("hyperLike").addEventListener("click", this.likeGame);
document.getElementById("hyperDislike").addEventListener("click", this.dislikeGame);
}
}
var homepage = new Homepage();
window.addEventListener("load", () => {
homepage.setListeners();
})
<html>
<body>
<p style="display:block">
<a id="hyperLike" href="">Like</a>/<a id="hyperDislike" href="" ;>Dislike</a> the game.
</p>
<p id="like" style="display:none">
good
</p>
<p id="dislike" style="display:none">
bad
</p>
</body>
</html>
Почтовый клиент должен знать, используется ли неявный SSL при подключении, поскольку он отвечает за инициирование рукопожатия SSL с сообщением ClientHello
. Как он определяет это зависит от клиента. Номера портов - хороший совет, но в некоторых интерфейсах также может быть установлен флажок, который заставляет его работать даже при использовании стандартного (незащищенного) номера порта.
Существуют зарегистрированные номера портов IANA для защищенной почты, но некоторые интернет-провайдеры могут использовать другие порты.
SMTP / SSL часто предлагается на порту 465, но это не зарегистрировано и встречается реже, поскольку широко распространена поддержка явного SSL поддерживается агентами SMTP.
Поддержка явного SSL может быть объявлена сервером с помощью согласования протокола. Например, когда клиент подключается к SMTP-серверу,
Я полагаю, что большинство клиентов, поддерживающих SMTP через SSL, начинают с незашифрованного соединения и выдают EHLO, а не HELO. Первый имеет дополнительные ответы с флагами, один из которых указывает, поддерживает ли сервер команду STARTTLS или нет. Если это так, тогда клиент может использовать STARTTLS, а затем использовать SSL с этого момента.
Пример:
% telnet quack.kfu.com 25
220 quack.kfu.com ESMTP ready NO UCE
EHLO client
250-quack.kfu.com Hello client [xx.xx.xx.xx] (may be forged), pleased to meet you
250-ENHANCEDSTATUSCODES
250-PIPELINING
250-8BITMIME
250-SIZE 25000000
250-ETRN
250-AUTH PLAIN LOGIN
250-STARTTLS
250-DELIVERBY
250 HELP
starttls
220 2.0.0 Ready to start TLS