Один из способов решить эту проблему - это немного реорганизовать его, разделив оператор if
на его собственную функцию.Затем передайте doc
и NewUrl
в функцию.
Вам нужно будет выйти из window.LaunchPopup
, чтобы получить более широкую область видимости и получить вызовы, передаваемые в this
.
Наконец, я поместил newURL
в атрибут data-
, чтобы мы могли получить к нему доступ через this
при нажатии на метку привязки
Вот пример.
[].forEach.call(document.querySelectorAll('.link '), function(doc) {
doc.addEventListener('click', function() {
var uniqueID = 'unique data';
var newUrl = Url.split("&response_type")[0] + encodeURIComponent("&uniqueID=" + uniqueID);
showPop(doc, NewUrl);
});
});
function showPop(doc, theURL) {
if (doc != null) {
doc.innerHTML = '<a href="' + theURLUrl + '" data-new-url="' + newURL + '" class="btn btn-default" target="_blank" onclick="return LaunchPopup(this);">Chat online</a>';
}
}
window.LaunchPopup = function(anchor) {
var newUrl = anchor.getAttribute("data-new-url");
var self = this;
var n = window.open(newUrl, '_blank', 'width=450,height=600,scrollbars=yes,resizable=yes');
return openPopup = n == null ? true : false;
};