Я работаю на порталах Microsoft Dynamics 365 CRM, но, несмотря на это, я пытаюсь включить модальный Sweet Alert 2 при нажатии кнопки.
Работает в большинстве браузеров (Chrome, Firefox & Edge) , но в Internet Explorer 11.
Это весь код, который я пытаюсь развернуть:
<a href="#" id="searchHelp">
<img border="0" src="http://some.url" alt="?" width="15" height="15">
</a>
<script src="https://unpkg.com/sweetalert/dist/sweetalert.min.js"></script>
<script lang="javascript">
console.log("Javascript loaded");
var helpButton = document.querySelector('#searchHelp');
if(navigator.userAgent.indexOf(".NET") >= 0) {
console.log('Triggered IE Modal actions');
helpButton.attachEvent('onclick', function(e) {
e.returnValue = false;
loadModal();
});
} else {
console.log('Triggered non-IE Modal actions');
helpButton.addEventListener('click', (e) => {
e.preventDefault();
loadModal();
}, false)
}
function loadModal() {
var xhr = new XMLHttpRequest();
xhr.open( "GET", "http://some.url/to-load", false);
xhr.setRequestHeader("Accept", "text/html");
xhr.setRequestHeader("Content-Type", "text/html; charset=utf-8");
xhr.onreadystatechange = function() {
if(this.readyState == 4) {
xhr.onreadystatechange = null;
if(this.status == 200) {
var parser = new DOMParser(),
content = parser.parseFromString(this.response, "text/html"),
form = content.querySelector('#liquid_form');
swal({
icon: "info",
content: form,
button: {
text: "Close",
value: false,
visible: true,
className: "",
closeModal: true,
}
})
}
}
};
xhr.send();
}
</script>
<style>
.swal-modal {
width: 90% !important;
}
.swal-content {
overflow: hidden;
}
</style>
Модал прекрасно работает во всех браузерах, о которых я упоминал ранее, но при нажатии на кнопку никаких действий не происходит. Он переходит в верхнюю часть страницы, и к URL-адресу добавляется хэштег. Сообщение «Javascript загружен» также не отображается.
Я пытался повысить совместимость браузера: я изменил fetch()
на XMLHttpRequest
и добавил проверку браузера путем тестирования на консоли инструментов разработчика, добавил attachEvent()
и addEventListener()
. Я также попытался включить type="javascript"
в тег. Любые подсказки?