datagott > internet.* > internet.www.ontwerp

Hinderik (03.07.2006, 23:08)
Hallo NIWO

Ik gebruik de diensten van Blogger om een.. (verrassing) weblog bij te
houden.

Om reacties te laten plaatsen gebruik ik het standaardformulier van Blogger
in een popupvenster. Als de bezoeker een reactie plaatst en het
reactievenster sluit moet nu handmatig de hoofdpagina nog een keer worden
ververst om de achtergelaten reactie ook daar te tonen.

Op de html, js etc. van de pagina in dat popupvenster heb ik geen invloed.
Met het hoofdvenster kan ik qua html, js etc. veel doen.

Uiteraard is het een zonde dat ik wil beslissen wanneer de pagina een keer
wordt herladen zonder dat de gebruiker daarvoor zelf kiest, maar is het
mogelijk (want ik wil het toch (weten) :) om het hoofdvenster bijvoorbeeld
met javascript op basis van een onFocus= (dat zal namelijk meestal gebeuren
als het popupvenster wordt gesloten) eenmalig te laten herladen, zodat de
geplaatste reactie "automatisch" wordt getoond. Op basis van onFocus=
continu laten herladen is me wel gelukt :S De kneep zit m in eenmalig. Als
aanvulling ben ik benieuwd of dat herladen ook specifiek kan gebeuren
n.a.v. het sluiten van dat popupvenster en niet als ik tussen mijn
hoofdvenster en andere willekeurige internetpagina's heen en weer schakel.

Zo ja, dan ben ik uiteraard benieuwd hoe :) Andere suggesties ook van harte
welkom!

Alvast bedankt,
Hinderik
Eric B. Bednarz (05.07.2006, 00:28)
Hinderik <hinderik> writes:

Het is niet mijn vak, maar WD Inc. heeft dit zo te zien genegeerd ;-)

> Ik gebruik de diensten van Blogger [...]


> Op de html, js etc. van de pagina in dat popupvenster heb ik geen invloed.
> Met het hoofdvenster kan ik qua html, js etc. veel doen.


*Dat* is jouw probleem lijkt mij. Jij wil *daar* eigenlijk onsubmit iets
doen, geopende en -slotene vensters doen er op zich niet echt toe.

> Uiteraard is het een zonde dat ik wil beslissen wanneer de pagina een keer
> wordt herladen zonder dat de gebruiker daarvoor zelf kiest,


Dat ook.

> Als
> aanvulling ben ik benieuwd of dat herladen ook specifiek kan gebeuren
> n.a.v. het sluiten van dat popupvenster en niet als ik tussen mijn
> hoofdvenster en andere willekeurige internetpagina's heen en weer schakel.


Dat gaat gebrekkig worden. Wat je kan doen is in de opener functie een
waarde aan een variabele toekennen en onfocus toetsen hoe het ermee
staat en of de open methode nog steeds wat eigenschappen heeft.

Als je op het popup formulier geen onvloed hebt voorzie ik ook daar
grote problemen, in M$ IE kan je alleen bij eigenschappen van vensters
die een document in hetzelfde domein tonen. Maar zelfs als dat zo is
betekend dat ook dat je niet meer bij de eigenschappen van een al
gesloten venster kan.

Een beetje vlug & pi * duim bijv.:

<html>
<head>
<title>Pop Art</title>
<script src="pop.js" type="text/javascript"></script>
</head>
<body>
<p><a href="pop.html" id="pop">Pop art</a></p>
</body>
</html>

en dan in pop.js:

if(document.getElementById) {
window.onload = init;
window.onfocus = dunnit;
var popit;
}

function init() {
popit = null;
document.getElementById('pop').onclick = loadit;
}

function loadit() {
popit = 'mypop';
bah = window.open(this.href,popit,"height=200,width=200" );
return false;
}

function dunnit() {
if(popit) {
var wname;
try {
wname = bah.name;
}
catch(e) {
wname = null;
/*
*als* window.open succesvol was zal het venster wel gesloten
zijn en IE een fout geven omdat document.domain niet meer klopt
*/
}
if(wname != popit) {
document.body.innerHTML += 'Something happened...';
init();
}
}
}

Wat er absoluut ontbreekt is een foutcontrole op window.open.
Eric B. Bednarz (05.07.2006, 00:34)
Eric B. Bednarz <bednarz> writes:

>> Op de html, js etc. van de pagina in dat popupvenster heb ik geen invloed.
>> Met het hoofdvenster kan ik qua html, js etc. veel doen.

> *Dat* is jouw probleem lijkt mij. Jij wil *daar*


'in dat popupvenster' etc. ..
Maarten Wierda (05.07.2006, 00:50)
Eric B. Bednarz wrote:

>>> Op de html, js etc. van de pagina in dat popupvenster
>>> heb ik geen invloed. Met het hoofdvenster kan ik qua
>>> html, js etc. veel doen.

>> *Dat* is jouw probleem lijkt mij. Jij wil *daar*

> 'in dat popupvenster' etc. ..


Nog even 'D.w.z.' aan de correctie toevoegen, en je bent
weer helemaal het heertje ;)
Eric B. Bednarz (05.07.2006, 01:22)
Eric B. Bednarz <bednarz> writes:

> Als je op het popup formulier geen onvloed


D.w.z. "schrijf niet onder 'invloed'".

> Maar zelfs als dat zo is
> betekend dat ook dat je niet meer bij de eigenschappen van een al
> gesloten venster kan.


D.w.z. je kan sowieso niet bij 'de' eigenschappen van al gesloten
vensters, maar je wil bij de poging geen fout genereren.

> Wat er absoluut ontbreekt is een foutcontrole op window.open.


D.w.z. ik open nooit vensters in een [..] en heb geen zin de
popup-mangling routines van diverse UA's nu te testen of daar ueberhaupt
over na te denken. Aan de referentie van het desbetreffende window
object is dat zo te zien niet zonder meer te zien.
Warden Dave (05.07.2006, 14:36)
"Eric B. Bednarz" <bednarz> wrote:

[Sluiten window detecteren...]
> Het is niet mijn vak, maar WD Inc. heeft dit zo te zien genegeerd ;-)


Eh, WD Inc. is getroffen door 1 wilde popup-staking.

WD
Hinderik (05.07.2006, 23:44)
On Wed, 05 Jul 2006 00:28:37 +0200, Eric B. Bednarz wrote:
> Hinderik <hinderik> writes:
>> Op de html, js etc. van de pagina in dat popupvenster heb ik geen invloed.
>> Met het hoofdvenster kan ik qua html, js etc. veel doen.

> *Dat* is jouw probleem lijkt mij. Jij wil *daar* eigenlijk onsubmit iets
> doen, geopende en -slotene vensters doen er op zich niet echt toe.


Misschien dat dan mijn uitleg niet correct of volledig is geweest.

Vanuit "mijn" hoofdvenster opent bewust de popup waarop ik verder geen
invloed heb, als in 'qua code'. Bij een onSubmit ("plaats reactie") in dat
venster wordt een toevoeging aan de blogger database gedaan. De popup
blijft dan gewoon open.

Na het sluiten van de popup is mijn hoofdvenster nog niet van die database
update (aanvullende tekst voor de pagina) op de hoogte, maar is er dus wel
het onFocus event, waarop actie kan worden gestart. Vandaar dat ik dus op
dat event "mijn hoop" vestigde :)

Zolang de popup is geopend hoeft er met het hoofdvenster niet per se iets
te gebeuren.

Als iemand dan tussen de popup en het hoofdvenster en nog andere pagina's
wisselt en er gebeurt nav van die onFocus iets (de herlaad actie) dan neem
ik dat voor lief is nu mijn idee. Misschien dat ik er inderdaad
uiteindelijk voor val dat het me irriteert en dan is de code zo weer weg.

Hinderik
Eric B. Bednarz (06.07.2006, 00:45)
Hinderik <hinderik> writes:

> On Wed, 05 Jul 2006 00:28:37 +0200, Eric B. Bednarz wrote:


> Misschien dat dan mijn uitleg niet correct of volledig is geweest.


Och...

> Vanuit "mijn" hoofdvenster opent bewust de popup waarop ik verder geen
> invloed heb, als in 'qua code'. Bij een onSubmit ("plaats reactie") in dat
> venster wordt een toevoeging aan de blogger database gedaan. De popup
> blijft dan gewoon open.


Zo heb ik het ook begrepen. En wat dus *eigenlijk* de bedoeling is, is
onsubmit in dat popupje de opener te verversen. Dat jij dat niet kan is
dus nog steeds het voornaamste probleem. ;-)

Maar goed, jij verklapt nog steeds niet of jouw blog en de popup van de
commentaar handler onder hetzelfde domein staan (als jij bij blogger
gehost bent zou dat kunnen). Anders kan je hooguit op het openen van
het venster toetsen, lijkt mij. Dat kan, met een beetje bof, al zo
werken als je wil, maar is nogal wankel.
Warden Dave (06.07.2006, 22:17)
"Eric B. Bednarz" <bednarz> wrote:

> Maar goed, jij verklapt nog steeds niet of jouw blog en de popup van
> de commentaar handler onder hetzelfde domein staan (als jij bij
> blogger gehost bent zou dat kunnen).


Nee, dat zal niet ('Even gezocht, maar 't blogvolk drijven ze bijv. samen
op 'username.blogspot.com' en 't document in de popup komt van
'www.blogger.com'). Anders kon je 't document in de popup natuurlijk
simpel zo wijzigen dat je het 'submit'-event afhandelde. [Nu zou de OP
tevreden kunnen zijn met o.a. simpelheden als:

var doReload = false;
window.onfocus = function() { if (doReload) location.reload(); }

en dan in de 'Comments'-link aan het 'click' afhandel-script iets
toevoegen als "doReload=true;".]

WD
Hinderik (11.07.2006, 22:55)
On Mon, 3 Jul 2006 23:08:34 +0200, Hinderik wrote:
> Alvast bedankt,


Eric en Warden dank

Ik zal nog eens erover nadenken of ik de intensievere scripting (dan wat ik
verwachtte) waard is. Mede ook omdat het niet de kijkers keuze is te
herladen

Hinderik
Hinderik (11.07.2006, 22:56)
On Tue, 11 Jul 2006 22:55:48 +0200, Hinderik wrote:

> On Mon, 3 Jul 2006 23:08:34 +0200, Hinderik wrote:
>> Alvast bedankt,

> Eric en Warden dank


Ook Maarten trouwens voor de toevoeging :)
Maarten Wierda (12.07.2006, 00:36)
Hinderik wrote:

>>> Alvast bedankt,

>> Eric en Warden dank

> Ook Maarten trouwens voor de toevoeging :)


Hinderik, het was me een waar genoegen.
Soortgelijke onderwerpen