webForumDet fria alternativet

Promta vid nedstängning av webbläsarfönster

JavaScript

4 svar · 978 visningar · startad av silfver

Medlem sedan apr. 200312 679 inlägg
Frågan#1

Tja!

Kör jag endast denna kodrad:

window.onbeforeunload = confirmExit;
function confirmExit()
{
	return "Don't leave me!";
}

Så fungerar mitt script. Då får jag en dialogruta som varnar mig för att jag är på väg att stänga ner webbläsaren.
Men den varnar även på vanliga länkklick (som inte stänger fönstret)! Eller om jag försöker köra en F5. Riktigt irriterande.

För att slippa detta lägger jag till lite jQuery som ska fixa det:

$(function () {
	$("a").click(function {
	window.onbeforeunload = null;
	});
});

Men då promptar den inte alls vid nedstängning längre.

Har ni några idéer på hur man kan göra för att lösa detta? Jag vill bara ha en confirm när man försöker stänga ner webbläsarfönstret. Inget annat.

Medlem sedan juni 20019 519 inlägg
#2

tror inte det, eventet som triggas verkar vara samma sak om du kör en F5 eller en stängning:

var $window = $(window).bind("beforeunload.warn",function(e) {
    console.log(e);
    return 'test';
});
$("a").bind("click", function() {
    $window.unbind("beforeunload.warn");
});
Medlem sedan apr. 200312 679 inlägg
#3

voigtann1 skrev:

tror inte det, eventet som triggas verkar vara samma sak om du kör en F5 eller en stängning:

var $window = $(window).bind("beforeunload.warn",function(e) {
    console.log(e);
    return 'test';
});
$("a").bind("click", function() {
    $window.unbind("beforeunload.warn");
});

Jag får inga ledtrådar i konsolen Logg: [object Object]

Med din kod så promptar den inte heller vid nedstängning. Säger du att du tror att det inte är möjligt?

Medlem sedan juni 20019 519 inlägg
#4

om du kollar i loggen så ser du event objektet, jag hittar inte i Firefox något som säger vad det är för target som triggade beforeunload eventet. känns som det inte riktigt gå.

Medlem sedan apr. 200312 679 inlägg
#5

voigtann1 skrev:

om du kollar i loggen så ser du event objektet, jag hittar inte i Firefox något som säger vad det är för target som triggade beforeunload eventet. känns som det inte riktigt gå.

Nej det blir lite jobbigt när scriptet triggar på alla sidladdningar. Inte riktigt det jag ville uppnå. :D

Tack för feedback voigtann1! :bire

259 ms totalt · 4 externa anrop · v20260731065814-full.e96017d9
119 ms — deklarationer (db)
0 ms — hämta statistik (cache)
133 ms — hämta tråd, inlägg och bilagor (db)
123 ms — ändringar (db)