Я использую Featherlight, чтобы создать «всплывающее» окно iframe, в частности страницу с Условиями и положениями, которую необходимо принять, прежде чем сайт можно будет просмотреть.
Технически это работает... всплывающее окно появляется и работает так, как и должно быть.Однако в консоли появляется ошибка, которая останавливает работу всех последующих сценариев:
TypeError: target is undefined
Я думаю, что это связано с тем, что я вызываю iframe чисточерез javascript вместо вызова HTML-элемента, такого как div.
Это мой код (я использую WordPress, поэтому там есть .env('WP_HOME')
):
<script>
var iframe = "'.env('WP_HOME').'/terms-conditions/";
jQuery(document).ready(function() {
jQuery.featherlight(
iframe, {
variant: "fl-terms",
type: "iframe",
closeOnEsc: false,
closeOnClick: false,
closeIcon: "",
otherClose: "#accept-submit",
beforeClose: function(event){
return false;
}
});
});
</script>
IЯ думаю, что с конфигурацией может быть что-то не так, но я не смог выяснить, что, потому что я еще не нашел подобный пример кода.
Благодаря предложениям imvain2, этомой окончательный код, который не вызывает ошибок:
<script>
var iframe = "'.env('WP_HOME').'/terms-conditions/";
jQuery("#_top").featherlight(
iframe, {
variant: "fl-terms",
type: "iframe",
closeOnEsc: false,
closeOnClick: false,
closeIcon: "",
otherClose: "#accept-submit",
beforeClose: function(event){
return false;
}
});
jQuery(document).ready(function() {
jQuery("#_top").click();
});
</script>
И в моем header.php
я добавил следующее прямо под тегом <body>
:
<a id="_top" class="no-scroll" href="#"></a>