[javascript] controleren of window al geopend is na refresh

Pagina: 1
Acties:

  • marty
  • Registratie: Augustus 2002
  • Laatst online: 27-03-2023
wat ik wil is controleren of een window bestaat. Nou vallen daar genoeg topics over te vinden met de search, maar die werken allemaal niet in mijn geval
opzich kwam deze wel redelijk in de buurt:
[rml][ JavaScript] Controleren of een window al geopend is[/rml]
crisp legt daar onderaan nog uit hoe je kunt voorkomen dat wanneer iemand in de popup op F5 drukt het 'contact met' de opener weer hersteld kan worden - maar ik wil het precies andersom en dat lukt me maar niet.
Als ik de pagina die het windowtje opent refresh (dit gebeurd namelijk dmv een meta-tag) dan wil ik dat ie nog steeds ziet of de popup nog open is. Maar hoe doe ik dat?

  • Spider.007
  • Registratie: December 2000
  • Niet online

Spider.007

* Tetragrammaton

Kun je wellicht iets duidelijker formuleren wat je mist aan de uitleg van crisp?
Als ik de pagina die het windowtje opent refresh (dit gebeurd namelijk dmv een meta-tag) dan wil ik dat ie nog steeds ziet of de popup nog open is. Maar hoe doe ik dat?
:?

---
Prozium - The great nepenthe. Opiate of our masses. Glue of our great society. Salve and salvation, it has delivered us from pathos, from sorrow, the deepest chasms of melancholy and hate


  • marty
  • Registratie: Augustus 2002
  • Laatst online: 27-03-2023
wat crisp uitlegt is: als iemand op F5 drukt (refresh) in de popup, dan kun je zus en zo het contact met de opener weer herstellen. Wat ik wil is het andersom. Als de de pagina die de popup opent refreshed (wat dus dmv een meta-tag gebeurd) dan moet dat contact ook op 1 of andere manier hersteld worden.
De reden waarom ik er niet uitkom is dat je vanuit een popup heel makkelijk nog de window.opener aan kunt spreken. Maar andersom weet ik niet hoe ik de popup moet aanspreken (na zo'n refresh) - dat is nou juist m'n probleem :)

Ik heb dus een werkende code die kan controleren of een popupje nog steeds open is (uit de eerdergenoemde topic gehaald), maar zodra de pagina zelf refreshed, dan werkt dat niet meer....

[ Voor 17% gewijzigd door marty op 15-04-2003 10:57 ]


  • Spider.007
  • Registratie: December 2000
  • Niet online

Spider.007

* Tetragrammaton

aha;

laat anders de popup elke 5 seconden
JavaScript:
1
opener.newwindow = self;
doen en dan kun je in de opener bij het laden van de pagina deze gebruiken:
JavaScript:
1
2
3
4
5
try {
  if (newwindow) alert('ja, die bestaat!');
} catch(error) {
  alert('nee, die ken ik niet!');
}

---
Prozium - The great nepenthe. Opiate of our masses. Glue of our great society. Salve and salvation, it has delivered us from pathos, from sorrow, the deepest chasms of melancholy and hate


  • marty
  • Registratie: Augustus 2002
  • Laatst online: 27-03-2023
Spider.007 schreef op 15 April 2003 @ 11:05:
laat anders de popup elke 5 seconden
JavaScript:
1
opener.newwindow = self;
doen [...]
Dat gaat niet werken helaas

Ik zal even uitleggen waar ik het voor gebruik

De pagina die de popup opent zit in een iframe en refreshed iedere minuut. bij het laden wordt er gecontroleerd of er nieuwe berichten zijn en zo ja, dan worden die in een popupje geopend. (meerdere berichten van dezelfde persoon, worden in dezelfde window geopend, dus niet aparte). Een bericht wordt pas als gelezen gemarkeerd als de ontvanger op een button heeft geklikt dat ie gelezen is (kruisje klikken resulteert er in dat ie opnieuw geopend wordt).
Maar het lastige is: je kan in dat popupje een reply tikken en als je dat dan dus niet binnen een minuut doet, wordt die popup opnieuw geopend en ben je je reply kwijt.
En telkens een andere naam aan de window geven zodat ie in een ander popupje terecht komt werkt ook niet, want als je dan 20 minuten niet kijkt, staan er ineens 20 dezelfde berichten op je scherm

Verwijderd

in die popup met twee frames werken en niet de volledige popup vernieuwen maar enkel het frame met de berichten en niet het frame waarin gereplyed kan worden?

  • marty
  • Registratie: Augustus 2002
  • Laatst online: 27-03-2023
stel dat ik dat zou doen, dan nog moet ik controleren of het popupje bestaat - ik kan immers niet een frame aanspreken in een niet bestaand framewerk.
maar dat vind ik zowiezo ook geen goede oplossing. want stel iemand krijgt een berichten te zien (hoi ben je nog wel eens op de site.). Degene aan wie het bedoelt is logt in, krijgt dat bericht en is een reply aan het typen. Degene die het bericht verstuurde ziet hem online komen en typed er nog een, (daar ben je al! nog wat leuks gedaan afgelopen weekend?) en net op het moment dat dat bericht aankomt, wordt de reply verstuurd en dus beide (waarvan 1 ongelezen) berichten als gelezen gemarkeerd. En ziet ie het laatste bericht dus niet

  • crisp
  • Registratie: Februari 2000
  • Nu online

crisp

Devver

Pixelated

Je zou in plaats van een volledige refresh ook kunnen gaan kijken naar andere mogelijkheden, zoals bijvoorbeeld het client-side inlezen van een XML file en die parsen.

Intentionally left blank


  • marty
  • Registratie: Augustus 2002
  • Laatst online: 27-03-2023
crisp schreef op 15 April 2003 @ 11:32:
Je zou in plaats van een volledige refresh ook kunnen gaan kijken naar andere mogelijkheden, zoals bijvoorbeeld het client-side inlezen van een XML file en die parsen.
dat werkt alleen in IE > 5.5 en de nieuwere mozilla versies

maaruh....aangezien jij master of popups bent :) en met zo'n oplossing komt - wat ik met javascript wil kan dus niet begrijp ik?

[ Voor 19% gewijzigd door marty op 15-04-2003 11:40 ]


  • crisp
  • Registratie: Februari 2000
  • Nu online

crisp

Devver

Pixelated

marty schreef op 15 April 2003 @ 11:38:
[...]

dat werkt alleen in IE > 5.5 en de nieuwere mozilla versies

maaruh....aangezien jij master of popups bent :) en met zo'n oplossing komt - wat ik met javascript wil kan dus niet begrijp ik?
Het idee van de 2 frames in de popup is zo slecht nog niet; op het moment dat het frame met de berichten een name property heeft kan je daar gewoon naar refereren en zal het frame in de popup gevonden worden:

JavaScript:
1
window.open('nieuweberichten.php', 'naamvanhetframeindepopup', '');


er zijn vast nog wel meer mogelijkheden; een daarvan zou zijn om de popup niet vanuit de iframe te laten openen, maar het via de parent van de iframe te doen (die refreshed immers niet).

Intentionally left blank


  • himlims_
  • Registratie: Juni 2000
  • Niet online

himlims_

🐧 Linux HOoligan

nu jullie toch bezig zijn over popups, ik wil juist geen popup :D
code:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
<tr>
    <td>
<?php echo "
<script> 
function del_$com_id() 
{ 
  var win = window.confirm('Delete this comment by $name2?') 

  if(win) 
  { 
  window.open(\"lange_url_met_werkende_variabelen\",\"_self\") 
  } 
} 
</script>"; ?>
    <?php echo "<font size=\"1\">[<a href=\"#\" onclick=\"del_$com_id()\">DELETE</a>]  [<a href=\"\#\">EDIT</a>]</font>"; ?>
    </td>
</tr>

target staat op _self (dat moet toch goed zijn?) als ik dat zo zeg gebeurd er nix :( nadat ik op ok klik.
Als ik het 'target' verander naar _blanc oid wordt de link wel geopend in een nieuw windows.
Maar ik wil juist dat ie in 't zelfde window blijft.

⭐Game Profiles: 🕹️Steam - 🎮PSN - 🇪🇦 GoT_Hollandhards


  • Spider.007
  • Registratie: December 2000
  • Niet online

Spider.007

* Tetragrammaton

als je geen popup wil moet je geen window.open gebruiken maar gewoon location aanpassen. Wellicht is het in het vervolg beter hier niet andermans topic mee te vervuilen :P

Dit is overigens basis kennis JS...... zoek eens op Google ofzo....

[ Voor 18% gewijzigd door Spider.007 op 15-04-2003 11:55 ]

---
Prozium - The great nepenthe. Opiate of our masses. Glue of our great society. Salve and salvation, it has delivered us from pathos, from sorrow, the deepest chasms of melancholy and hate


  • himlims_
  • Registratie: Juni 2000
  • Niet online

himlims_

🐧 Linux HOoligan

hebbie misschien wel gelijk in, sorry marty! (ik doe ook net 5min. javascript :X)
location aanpassen?
//edit
location :X :X

[ Voor 41% gewijzigd door himlims_ op 15-04-2003 12:01 ]

⭐Game Profiles: 🕹️Steam - 🎮PSN - 🇪🇦 GoT_Hollandhards


  • Spider.007
  • Registratie: December 2000
  • Niet online

Spider.007

* Tetragrammaton

Scarecrow schreef op 15 april 2003 @ 11:58:
hebbie misschien wel gelijk in, sorry marty! (ik doe ook net 5min. javascript :X)
location aanpassen?
Vooruit dan; location is een property van het window object. Je moet dus
JavaScript:
1
window.location = "http://www.beginnersweb.nl";
doen :) EN NU DOCUMENTATIE GAAN LEZEN :P :)

---
Prozium - The great nepenthe. Opiate of our masses. Glue of our great society. Salve and salvation, it has delivered us from pathos, from sorrow, the deepest chasms of melancholy and hate


  • himlims_
  • Registratie: Juni 2000
  • Niet online

himlims_

🐧 Linux HOoligan

offtopic:
Spider.007: je hebt vandaag iemand heeel blij gemaakt, meer aan javascript heb ik voor m'n pagina toch niet nodig - :x ik ga lekker toch geen js documentatie lezen :x - nog maals bedankt

[ Voor 3% gewijzigd door himlims_ op 15-04-2003 12:07 ]

⭐Game Profiles: 🕹️Steam - 🎮PSN - 🇪🇦 GoT_Hollandhards


Verwijderd

Ik heb haast en daarom niet het hele bericht door gelezen; sorry als dit al is gezegd of nergens op slaat.

Kun je de reference van de popup niet "opslaan" in de parent? :) Dus:

JavaScript:
1
2
if ( !parent.myPopup )
    parent.myPopup = window.open('bestand.xhtml', 'name', 'attributen');

  • marty
  • Registratie: Augustus 2002
  • Laatst online: 27-03-2023
het idee van crisp om de code in de parent te zetten leek me eerst wel een goed idee, maar ook daar zitten gaten in. als iemand een berichtje stuurt over iets op de site en die gene gaat daarheen, dan veranderd de parent dus ook - als ie vervolgens een reply gaat typen dan zal een minuut later z'n reply weer wegvallen (omdat de parent immers niet meer weet dat die popup open staat).
ik zal dus voor de frames-optie moeten gaan. ik denk er nu over om dan maar een framestructuur met maar 1 frame in de popup te laden. als ik dan op die framenaam kan controleren, dan kan ik ook kijken of er in het reply-gedeelte van het formulier in dat frame een waarde aanwezig is (dan zijn ze dus wat aan het typen) -> zo ja: ff nix popuppen, zo nee: kan ie opnieuw (met eventuele nieuwe berichten) geopend worden, waarbij ik dan het hele windowtje weer aanspreek

geld het voor een framename ook dat je
if (name_of_frame)
{
// code
}
kunt doen?

edit //

[ Voor 3% gewijzigd door marty op 15-04-2003 17:03 . Reden: ik probeer het vanavond gewoon wel ff :) ]

Pagina: 1