Ik gebruik op meerdere plekken een location.replace() met javascript.
Bij de een werkt het prima.
Bij de ander doet hij het niet.
Hij komt weer terug op dezelfde pagina.
Hij reload...
Als ik bij degene die niet werkt de replace vervang door een window.open().
En daaronder een window.close() dan werkt het weliswaar.
Maar komt de IE met de vervelende mededeling of ik echt de pagina wil sluiten.
Ik zie geen verschil in de gebruikte functies.
Iemand die het begrijpt?

In pagina tabelaar.php:

function helpA()
{
location.replace("tabelaar_start.php");
//window.open("tabelaar_start.php");
//window.close();
}

<button class= "buttonA" onclick = "helpA()" >Menu</button>


In tabelaar_start:

function helpB(x)
{
location.replace("tabelaar.php");
}

<div class = "blok">
<button class = "buttonA" onclick = "helpB('2')">Pers.</button>
</div>


[size=xsmall]Toevoeging op 19/12/2017 20:39:34:[/size]

Het lijkt te werken zonder de waarschuwing van IE op de volgende manier:

window.open("tabelaar_start.php");
window.open('', '_self', '');
window.close();


getest op Chrome en IE...
Andere browsers weet ik niet...
@Hans

Los van het feit dat het laatste lijkt te werken in verschillende browsers, denk ik dat er mooiere manieren zijn om te bereiken wat je wilt. Persoonlijk zou ik kiezen voor het gedeeltelijk vervangen van delen van de pagina met AJAX. Dit vanwege de snelheidswinst.

De meest voor de hand liggende oplossing voortbordurend op wat je op dit moment hebt in JS vind ik: window.location.href = "<url>";

Ander puntje van aandacht, en dat ben je je wss wel bewust, is de wijze van noteren. Het binden van een event aan een button zou ik volledig in JS afhandelen en niet in de HTML.
Probleem is dat browsers weigeren om te sluiten via scripts wanneer er slechts 1 tab open is.
Je moet dus altijd een extra pagina open hebben.
IE geeft nu ook geen melding meer.
Misschien kun je met tijdvertraging ook wel wat, zodat de pagina pas sluit,
wanneer de ander helemaal geopend is.
Pagina replacen lijkt ook niet geschikt voor alle browsers.
Of wellicht zelfde probleem.
Dit werkt vooralsnog.
Dit stukje script maakt deel uit van andere berekeningen in javascript.
Vandaar dat het in javascript staat.
Bedankt voor je opmerkingen en adviezen.
Maar door van location.replace af te stappen en gebruik te maken van het direct setten van location.href heb je dat gezeur ook niet. Uiteraard stop je daar wel een volledige URL in en niet alleen een bestandsnaam.

Reageren