javascript huidig venster sluiten

help java-script om het huidige venster te sluiten.
dit is mijn code en het werkt niet.

<input type="button" class="btn btn-success"
                     style="font-weight: bold; display: inline;"
                     value="Close"
                     onclick="closeMe()">
function closeMe()
{
    window.opener = self;
    window.close();
}

Ik heb dit geprobeerd, maar het werkt ook niet:

var win = window.open("", "_self");
win.close();

Antwoord 1, autoriteit 100%

Ik weet dat dit een oud bericht is, met veel veranderingen sinds 2017, maar ik heb ontdekt dat ik mijn huidige tabblad/venster nu in 2019 met het volgende kan sluiten:

onClick="javascript:window.close('','_parent','');"

Antwoord 2, autoriteit 50%

** Bijwerken**

Sinds het plaatsen van het antwoord zorgen de nieuwste browserversies ervoor dat de opdracht niet werkt. Ik laat het antwoord zichtbaar, maar merk op dat het ALLEEN werkt op oudere browserversies.


De meeste browsers voorkomen dat u vensters sluit met javascript die niet zijn geopend met window.open("https://example_url.com")maar het is nog steeds mogelijkom het huidige venster te sluiten met het volgende commando:

window.open('','_self').close()

Dit laadt een lege url (het eerste argument) in het huidige venster (het tweede argument) en sluit dan onmiddellijk het venster. Dit werkt omdat wanneer close()wordt aangeroepen, het huidige venster is geopend door javascript.


Antwoord 3, autoriteit 33%

Je kunt een venster niet sluiten met javascript dat je niet hebt geopend. Het werkt niet in Chrome of Firefox.

Zie https://stackoverflow.com/a/19768082/2623781voor meer informatie.


Antwoord 4, autoriteit 33%

Als u uw huidige venster wilt sluiten met JS, doet u dit. Open eerst het huidige venster om uw huidige tabblad te laten denken dat het door een script is geopend. Sluit het vervolgens met window.close(). Het onderstaande script moet naar het bovenliggende venster gaan, niet naar het onderliggende venster. U kunt dit uitvoeren nadat u het script heeft uitgevoerd om het kind te openen.

<script type="text/javascript">
    window.open('','_parent',''); 
    window.close();
</script>

Antwoord 5, autoriteit 33%

In JavaScript kunnen we een venster alleen sluiten als het is geopend met window.openmethode:

window.open('https://www.google.com');
window.close();

Maar om een venster te sluiten dat niet is geopend met window.open(), moet u

  1. Open een andere URL of een lege pagina op hetzelfde tabblad
  2. Sluit dit nieuw geopende tabblad (dit werkt omdat het is geopend door window.open())
window.open("", "_self");
window.close();

Antwoord 6, autoriteit 22%

Zou moeten zijn

<input type="button" class="btn btn-success"
                       style="font-weight: bold;display: inline;"
                       value="Close"
                       onclick="closeMe()">
<script>
function closeMe()
{
    window.opener = self;
    window.close();
}
</script>

Antwoord 7, autoriteit 6%

Als u vensters die niet door het script worden geopend niet kunt sluiten, kunt u uw pagina vernietigen met deze code:

document.getElementsByTagName ('html') [0] .remove ();

Antwoord 8

Ik stel voor om idin de invoer te plaatsen en het venster te sluiten door de callback-functie als volgt te sluiten:

<input id="close_window" type="button" class="btn btn-success"
                   style="font-weight: bold;display: inline;"
                   value="Close">

De callback-functie als volgt:

<script>
   $('#close_window').on('click', function(){
      window.opener = self;
      window.close();
   });
</script>

Ik denk dat onclicksoms niet werkt, controleer ook het volgende antwoord.


Antwoord 9

Ik vond deze methode van Jeff Clayton. Het werkt voor mij met Firefox 56 en Chrome (op Windows en Android).

Niet alle mogelijkheden geprobeerd. Van mijn kant open ik een venster met een doelnaam in mijn A-links, bijvoorbeeld target=”mywindowname”, dus al mijn links openen in dezelfde vensternaam: mywindowname.

Een nieuw venster openen:

<a href="example-link.html" target="mywindowname">New Window</a>

En dan in het nieuwe venster (in example-link.html):

<a href="#" onclick="return quitBox('quit');"></a>

Javascript:

function quitBox(cmd) {   
    if (cmd=='quit') {
        open(location, '_self').close();
    }   
    return false;   
}

Ik hoop dat dit iemand kan helpen die op zoek is naar een methode om een venster te sluiten. Ik heb veel andere methoden geprobeerd en deze is de beste die ik heb gevonden.


Antwoord 10

Ik heb hetzelfde probleem, de browser staat het niet toe om het tabblad te sluiten, maar ik heb het voor mij opgelost (12 juni 2021).
De browsergeschiedenis moet 1 stap zijn (in chrome) om window.close() te kunnen gebruiken, als je een ander venster opent, dan heb je 2 stappen, het zal niet meer werken. Dus ik moet elk venster sluiten en opnieuw openen.
Als ik een gebeurtenis onClick=windows.close toevoeg aan elke link en deze link in een nieuw tabblad (target=_blank) open, blijft de geschiedenis bij 1 stap en kan het tabblad altijd worden gesloten met windows.close().

<html>
<head></head>
<body>
    <div id="navbarToggler" >   
        <ul>
            <li>
                <a href class="closes" id="close"><script>document.write("[close]")</script></a>
            </li>     
            <li>
                <a class="nav-link text-nowrap " href="#" id="navbarDropdownMenuLink" >
                    gallery...does not close, it should be the Dropdownlink
                </a>
                    <div aria-labelledby="navbarDropdownMenuLink">
                    <a  href="#">self.html</a> Here you can link where you want, but every site needs the script
                    </div>
            </li>
        </ul>
    </div>
    <script>    
        document.querySelectorAll("a").forEach(function(x){
        x.setAttribute('target', '_blank');
        x.setAttribute('onClick', "window.setTimeout(function(){window.close();}, 50);");
        document.getElementById("close").setAttribute('target', '_self');
        document.getElementById("close").setAttribute('onClick', "window.close()");
        document.getElementById("navbarDropdownMenuLink").setAttribute('onclick', "");
        document.getElementById("navbarDropdownMenuLink").setAttribute('target', '_self');})
    </script>
</body></html>

De id ‘navbarDropdownMenuLink’ moet worden uitgesloten door te sluiten omdat het een vervolgkeuzemenu is.
De id ‘close’ moet worden uitgesloten door in een nieuw tabblad te openen omdat dit de link is om het huidige tabblad te sluiten.
De setTimeout-functie is nodig voor Firefox.


Antwoord 11

PROBEER dit, het werkt prima …

<!DOCTYPE html>
<html>
<body>
<input type="button"  onclick="openWin()" value="open"/>
<input type="button"  onclick="closeWin()" value="close"/>
<script>
var myWindow;
function openWin()
{
myWindow = window.open("","myWindow","width=200,height=100");
myWindow.document.write("<p>This is 'myWindow'</p>");
}
function closeWin()
{
myWindow.close();
}
</script>
</body>
</html>

dit werkt zoals u wilt dat het werkt


Antwoord 12

Werkt alleen in Google Chrome met self.close();. Getest in v48.

window.close()zal niet doen wat je wilt, omdat de documentatie ervoor duidelijk stelt dat scripts alleen de vensters mogen sluiten die erdoor werden geopend.

Other episodes