reeks URL's openen in diverse browsertabbladen
test.htm
Code (php)
1
2
3
4
5
6
7
8
9
2
3
4
5
6
7
8
9
<html>
<body>
<form action="test.php" method="post">
Van (jjjjmmdd): <input type="text" name="van"><br>
Tot (jjjjmmdd): <input type="text" name="tot"><br>
<input type="submit">
</form>
</body>
</html>
<body>
<form action="test.php" method="post">
Van (jjjjmmdd): <input type="text" name="van"><br>
Tot (jjjjmmdd): <input type="text" name="tot"><br>
<input type="submit">
</form>
</body>
</html>
test.php
Code (php)
1
2
3
2
3
<?php
fopen("https://www.wiewaswie.nl/personen-zoeken/zoeken//solr/1/id/2052753/date_added/".$van."_".$tot,"r");
?>
fopen("https://www.wiewaswie.nl/personen-zoeken/zoeken//solr/1/id/2052753/date_added/".$van."_".$tot,"r");
?>
Als ik als begindatum 20130911 en als einddatum 20131001 invoer, zou ik willen dat mijn simpele programmaatje dus begint met het openen van https://www.wiewaswie.nl/personen-zoeken/zoeken//solr/1/id/2052753/date_added/20130911_20131001
in het eerste nieuw te openen tabblad. Daarna moeten er in nieuw te openen tabbladen ook URL's worden geopend, zoals https://www.wiewaswie.nl/personen-zoeken/zoeken//solr/1/id/2052753/date_updated/20130911_20131001
Wat doe ik fout?
fopen een PHP (dus server-side) functie is. Hiermee kun je geen tabblad openen bij een gebruiker.
Wel kun je een nieuwe pagina openen door middel van JavaScript (een soort pop-up).
Realiseer je dat Wel kun je een nieuwe pagina openen door middel van JavaScript (een soort pop-up).
Als er binnen PHP andere opdrachten zijn behalve fopen, dan gebruik ik gewoon die.
Mijn eenvoudige programma moet gewoon per run een stuk of 40 tabbladen openen en dat gaat sneller via dit programma dan handmatig 40 keer op een link klikken...
Kortom: geef eens wat meer details weg.
En wat wil je nu?
40 keer één (en dezelfde) pagina aanroepen (dus uitvoeren)?
40 verschillende pagina's aanroepen?
40 tabs openen met dezelfde pagina?
40 tabs openen met 40 verschillende pagina's?
Staan de pagina's op je eigen website? Of niet?
Zit er een limiet op?
Geef daar eerst een wat duidelijkheid in, dan kunnen we eventueel verder kijken.
Guido van Harten op 02/10/2013 08:54:13:
Nu twijfel ik nog of ik me moet gaan buigen over Javascript of dat ik het binnen PHP houd.
Als je je probleem wilt oplossen heb je weinig andere keus. Zoals al gezegd, php is server side en vanuit php kan je maar 1 pagina terugsturen. Je kan niet meerdere tabs openen. Dus nee, er is geen andere functie.
Tenzij je de gebruiker op meerdere links wilt laten klikken, dat kan natuurlijk altijd.
Gewijzigd op 02/10/2013 10:39:54 door Erwin H
De gebruiker heeft een venster open. De rol van de website is om binnen dat venster te blijven.
Als scripter zijn het jouw zaken niet waar dat venster staat; hoe groot; hoe veel tabs; waar de cursor is; waarom/wanneer de gebruiker het venster sluit; ... dat beslist de gebruiker zelf.
Erwin H op 02/10/2013 10:39:30:
Tenzij je de gebruiker op meerdere links wilt laten klikken, dat kan natuurlijk altijd.
Wel ja, dat lijkt me wel een leuke piste.
Ik heb hier wat code, waarbij een link staat, met target="_blank" en javascript triggert na 1 seconde een click op die link.
Nu, deze code wordt geblokkeerd door popup blockers.
Maar als je alle veiligheidsmaatregelen zou afzetten, zou dit een kettingreactie genereren.
Binnen de kortste keren staat het vol vensters of tabs.
Maar in de praktijk werkt het dus niet; owmille van de blockers
Code (php)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
<a id="mijn_link" href="index.php" target="_blank">Klik</a>
<script>
setTimeout(function() {
var link = document.getElementById('mijn_link');
clickLink(link);
}, 1000);
// dit genereert een click. @see http://stackoverflow.com/questions/2379949/how-to-invoke-click-event-from-javascript
function clickLink(link) {
if (document.createEvent) {
var event = document.createEvent("MouseEvents");
event.initMouseEvent("click", true, true, window,
0, 0, 0, 0, 0,
false, false, false, false,
0, null);
link.dispatchEvent(event);
}
else if (link.fireEvent) {
link.fireEvent("onclick");
}
}
</script>
<script>
setTimeout(function() {
var link = document.getElementById('mijn_link');
clickLink(link);
}, 1000);
// dit genereert een click. @see http://stackoverflow.com/questions/2379949/how-to-invoke-click-event-from-javascript
function clickLink(link) {
if (document.createEvent) {
var event = document.createEvent("MouseEvents");
event.initMouseEvent("click", true, true, window,
0, 0, 0, 0, 0,
false, false, false, false,
0, null);
link.dispatchEvent(event);
}
else if (link.fireEvent) {
link.fireEvent("onclick");
}
}
</script>
Gewijzigd op 02/10/2013 11:00:56 door Kris Peeters
Het gaat om een hulpmiddel voor mij bij het gebruik van http://www.wiewaswie.nl. Voor mijn stamboomonderzoek heb ik me ingeschreven op wijzigingen en aanvullingen in de archieven.
Dagelijks ontvang ik daarvan een melding. Deze melding bestaat uit een aantal links naar een webpagina. De ene dag zijn dat 0 links, de andere dag 40 links.
De links beginnen allemaal www.wiewaswie.nl/personen-zoeken/zoeken//solr/1/id/2052753/date_added/20130911_20131001
daarna komt er een cijferreeks die mijn "abonnement" aanduidt ("2052753" in dit geval), daarna "date_added" of "date_updated", daarna de begindatum van de wijziging/aanvulling en vervolgens de einddatum.
De per e-mail ontvangen lijst met links ziet er dus bijvoorbeeld als volgt uit:
https://www.wiewaswie.nl/personen-zoeken/zoeken//solr/1/id/2052499/date_updated/20130925_20130926
https://www.wiewaswie.nl/personen-zoeken/zoeken//solr/1/id/2052499/date_added/20130925_20130926
Nu kijk ik niet elke dag naar deze lijst, maar wil bijvoorbeeld wel alle updates en toevoegingen zien vanaf twee bepaalde data.
Per cijferreeks dat mijn abonnement weergeeft zijn er dus steeds 2 links (date_updated en date_added).
Ik ben namelijk bang dat je browser op tilt gaat als je 40 tabs in één keer wilt openen, hetzij doordat je browser je script gaat blokkeren hetzij door geheugen problemen.
Frank Nietbelangrijk op 02/10/2013 12:00:11:
Is het een idee om één webpagina te genereren (dat is wat php doet) en dan de inhoud van deze webpagina onder te verdelen in tabs? dat is met een klein beetje css en een klein beetje javascript te realiseren.
Oeps, daar ga ik al. Ik heb steeds bedoeld dat ik een pagina wil openen met daarop tabs per link. Er mag wat mij betreft ook begonnen worden met een nieuwe tab op de huidige pagina.
http://jqueryui.com/tabs/
Dat kunnen we meteen maken.
Die links, dat zijn links naar een andere server, ja?
Dat maakt het iets lastiger. Dan kunnen we niet zomaar met Ajax werken.
We kunnen iframes gebruiken, of iets als CURL
-----
Zeg, biedt die website geen API?
Iets dat door hen speciaal gemaakt is om te zorgen dat ontwikkelaars de data kunnen lezen en zelf verwerken ... ?
Gewijzigd op 02/10/2013 12:22:54 door Kris Peeters