IE ругается при подключении внешнего файла
Есть модальное окно, в нем ссылка на вызов еще одного окна с политикой конфиденциальности.
Во всех браузерах работает нормально, но в IE не работает, в консоли ошибка "Недопустимый знак". Ругается на тильду. Но пробовал кавычки и одинарные и двойные, но тоже ругается. Как победить это? Или подскажите другое решение, как подключить внешний файл с кодом модального окна. вызов: <a data-toggle="modal" data-target=".privacy_policy">Политика конфиденциальности</a> код подключаемого файла:
function newModal() {
var newModal = `
<div class="modal fade privacy_policy" tabindex="-1" role="dialog">
<div class="modal-dialog md-custom" role="document">
<div class="modal-content">
<div class="modal-header">
<button type="button" class="close" data-dismiss="modal" aria-hidden="true"></button>
<h4 class="modal-title">Политика конфиденциальности</h4>
</div>
<div class="modal-body">
<p>Любая информация, переданная Сторонами друг другу при пользовании ресурсами Сайта, является конфиденциальной информацией.</p>
<p>....</p>
<p>....</p>
...
<button type="button" class="more buttons blue" data-dismiss="modal" aria-hidden="true">Закрыть</button>
</div>
</div>
</div>
</div>
`;
$('body').append(newModal);
}
$('a').on('click', newModal);
Вот подобный пример: https://jsfiddle.net/vh88u4uh/ |
А так работает там? https://jsfiddle.net/fzymr5jg/
|
Malleys,
Да, так работает. Но мне нужно чтобы подключалось из внешнего файла, чтобы не захламлять исходный код. Код модального окна с политикой конфиденциальности не нужен в исходном коде. Сам текст политики - целая "простыня" и никак не относится к тематике сайта. Зачем его тащить на все страницы сайта. Для SEO не айс. |
Цитата:
код подключаемого файла:
$(function(){
$.ajax("/privacy_policy.html", {
success: function(html) {
function newModal() {
$('body').append(html);
}
$('button').on('click', newModal);
}
});
});
|
ozoro, а проблема в том, что только `` поддерживает переносы в строке. Но ie не понимает ``. Обычные же кавычки, соответственно, переносы не поддерживают, так что просто заменив одни на другие - получаешь невалидный в принципе код.
Чтоб заработало твоё решение - надо нарубить строку. Но лучше конечно использовать вариант Malleys, и хранить html отдельно как html. |
Malleys,
Благодарю, все заработало. |
Malleys,
Не подскажешь еще. Я вызываю модальное окно из другого модального окна. При открытии первого модального окна в инспекторе появляется код из privacy_policy.html <script type="text/x-template" id="modal-template">код мод. окна</script> Если закрыть это окно и открыть вновь, то уже получается: <script type="text/x-template" id="modal-template">код мод. окна</script> <script type="text/x-template" id="modal-template">код мод. окна</script> Если несколько раз так сделать, то будет много строк: <script type="text/x-template" id="modal-template">код мод. окна</script> <script type="text/x-template" id="modal-template">код мод. окна</script> <script type="text/x-template" id="modal-template">код мод. окна</script> <script type="text/x-template" id="modal-template">код мод. окна</script> <script type="text/x-template" id="modal-template">код мод. окна</script> <script type="text/x-template" id="modal-template">код мод. окна</script> .... Как удалить дубликаты этого кода при закрытии первого модального окна, оставив только один. Но не удалять при закрытии окна с политикой конфиденциальности? Или просто удалять при закрытии первого окна, но не удалять при закрытии окна с политикой конфиденциальности? |
Создайте элемент на странице, куда должен вставляться HTML, например, <div id="my-modal"></div>
Далее вместо добавления в body Цитата:
$('#my-modal').html(html);
А удалить, можно так
$('#my-modal').empty();
|
Malleys,
Благодарю, так даже и удалять не нужно, ничего лишнего, только один раз вставляется. |
| Часовой пояс GMT +3, время: 11:51. |