onbeforeunload в iframe не вызывается, когда я нажимаю любую из родительских ссылок в магазине shopify - PullRequest
0 голосов
/ 18 июня 2020

Я установил пользовательское приложение в свой магазин Shopify и на странице добавления кампании я добавил onbeforeunload, поэтому, если есть какие-либо данные, заполненные в наборе полей, и он пытается перезагрузить или go обратно, он должен запросить подтверждение, что он работает нормально внутри iframe, но когда я нажимаю на родительские ссылки, такие как заказы продуктов, подтверждение не запрашивается.

var counter=0;
function check_counter()
{
    if($('#CustomProgressMessage').val()!="" || $('#campaignNameTxt').val()!="" || $('#campaignImg').val()!="" || $('#campaignCollection').val()!="" || $('#campaignProduct').val()!="" || $('#campaignStartDate').val()!="" || $('#campaignExpireDate').val()!="" || $('#campaignDescription').val()!="" )
    {
     counter++
    }

    $i=1;
    while($i<=6)
    {
        var tierEnabled = $('table.campaign-tiers-table td.td-tier-status input.tier_active.'.concat($i)).prop('checked');
            if( tierEnabled == true ){
                        counter++
            }
            if($('#ProgressBar'.concat($i)).prop('checked') == true)
            {
                        counter++
            }
            $i++
    }
    if(is_save==1)
    {
        counter=0
    }
}

function areYouSure() {
    check_counter()
    console.log(counter)
    if(allowPrompt){
        if(counter!=0)
            return "Are you sure you want to close it";
    }else{
        allowPrompt = true;
    }
}

var allowPrompt = true;
window.onbeforeunload = areYouSure;

Переменная is_save используется для проверки, нажата ли кнопка сохранения кампании при нажатии, тогда ее значение будет равно единице

...