Я установил пользовательское приложение в свой магазин 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 используется для проверки, нажата ли кнопка сохранения кампании при нажатии, тогда ее значение будет равно единице