Allereerst: het gaat niet om een eigen website, maar om de website van een derde.
Wat gebeurt er:
Ga naar http://www.sciencedirect....cle/pii/S0304394009005023
Scroll een stukje naar beneden met de muis/pijltjestoetsen. Je ziet dat de navigatiebar en het stukje erboven verborgen worden.
Ik bekijk de pagina via een intranetpagina van mijn opleiding. Mijn url ziet er zo uit: http://rps.hva.nl:2281/science/article/pii/S0304394009005023
Voor zover ik kan zien is alles hetzelfde behalve dat ik ingelogd ben.
Wat is het probleem? Zowel in Chrome als in Firefox (laatste versies) wordt, zodra de navbar verborgen wordt, de pagina herladen en "?np=y" achter de url gezet. Ik vermoed dat "np" staat voor "no pagination" maar dat weet ik niet zeker.
Dit is irritant als je opeenvolgend tabs opent met verschillende artikelen die je vervolgen wil gaan lezen, omdat elke tab dan weer herladen wordt wanneer je een stukje omlaag scrollt.
Ik heb net een paar uur in de html en javascript zitten spitten met Chrome Developer Tools en het equivalent daarvan in Firefox, maar ik kom er niet uit. Ik heb een aantal passages gevonden in de code die denk ik relevant zijn, maar verwijderen lijkt niet te werken (livedit).
Dit is wat er gebeurt bij de reload:

Het stukje code dat de laatste schakel is (volgens mij), leest als volgt:
regel 376: http://cdn.els-cdn.com/sd/js/sd_131R4.js
Dit stukje weghalen lijkt niks uit te halen. Het lijkt alsof hij de inhoud van de pagina in fragmenten wil laden, maar zodra ik naar beneden scroll, opeens van gedachten verandert.
Ik hoop dat jullie me vergeven maar ik heb echt geen idee welke informatie voor jullie verder relevant is om te kunnen zeggen "ik zie het al, dat gaat zus en zo".
edit: Ik ben een noob wat betreft coding. Ik kan simpele structuren e.d. uitvogelen, maar dit gaat echt m'n pet te boven. De volledige javascript die geladen wordt is bijna 8000 regels...
edit2: Ik heb een vermoeden over wat er aan de hand is. In de screenshot hierboven zie je dat er een GET request gestuurd wordt voor fragment 2 (frag_2). Volgens mij wordt er daar dan een undefined teruggegeven. Dat komt denk ik door de errors die daarboven staan. Waarschijnlijk bevat één van die zaken die waarbij staat "XMLHTTPrequest cannot load" staat de informatie over fragment 2 waardoor er undefined teruggegeven wordt. De javascript hierboven kijkt vervolgens of de variable de waarde 'undefined' heeft en laadt vervolgens alle content in één keer.
Vandaar dat het waarschijnlijk niet fout gaat als je niet ingelogd bent. Lijkt dus een bug te zijn in de code van sciencedirect.
Wat gebeurt er:
Ga naar http://www.sciencedirect....cle/pii/S0304394009005023
Scroll een stukje naar beneden met de muis/pijltjestoetsen. Je ziet dat de navigatiebar en het stukje erboven verborgen worden.
Ik bekijk de pagina via een intranetpagina van mijn opleiding. Mijn url ziet er zo uit: http://rps.hva.nl:2281/science/article/pii/S0304394009005023
Voor zover ik kan zien is alles hetzelfde behalve dat ik ingelogd ben.
Wat is het probleem? Zowel in Chrome als in Firefox (laatste versies) wordt, zodra de navbar verborgen wordt, de pagina herladen en "?np=y" achter de url gezet. Ik vermoed dat "np" staat voor "no pagination" maar dat weet ik niet zeker.
Dit is irritant als je opeenvolgend tabs opent met verschillende artikelen die je vervolgen wil gaan lezen, omdat elke tab dan weer herladen wordt wanneer je een stukje omlaag scrollt.
Ik heb net een paar uur in de html en javascript zitten spitten met Chrome Developer Tools en het equivalent daarvan in Firefox, maar ik kom er niet uit. Ik heb een aantal passages gevonden in de code die denk ik relevant zijn, maar verwijderen lijkt niet te werken (livedit).
Dit is wat er gebeurt bij de reload:

Het stukje code dat de laatste schakel is (volgens mij), leest als volgt:
JavaScript:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
| bail: function(t, r, i) { if(r != undefined) { if(SDM.pm.fat != undefined) { $.get(SDM.urlPrefix + "/frag/" + SDM.pm.pii + "/" + SDM.pm.fat + "/" + "mfi/" + r, function() {}); } else { $.get(SDM.urlPrefix + "/frag/" + SDM.pm.pii + "/" + "status" + "/" + "mfi/" + r, function() {}); } } var tt = 0; if(t != undefined) { tt = t; } var ii = ''; if(i != undefined) { ii = '#' + i; } Fragment.bail = function(t,r,i) {return;} setTimeout(function() {window.location.href = window.location.href + "?np=y" + ii;},tt); |
regel 376: http://cdn.els-cdn.com/sd/js/sd_131R4.js
Dit stukje weghalen lijkt niks uit te halen. Het lijkt alsof hij de inhoud van de pagina in fragmenten wil laden, maar zodra ik naar beneden scroll, opeens van gedachten verandert.
Ik hoop dat jullie me vergeven maar ik heb echt geen idee welke informatie voor jullie verder relevant is om te kunnen zeggen "ik zie het al, dat gaat zus en zo".
edit: Ik ben een noob wat betreft coding. Ik kan simpele structuren e.d. uitvogelen, maar dit gaat echt m'n pet te boven. De volledige javascript die geladen wordt is bijna 8000 regels...
edit2: Ik heb een vermoeden over wat er aan de hand is. In de screenshot hierboven zie je dat er een GET request gestuurd wordt voor fragment 2 (frag_2). Volgens mij wordt er daar dan een undefined teruggegeven. Dat komt denk ik door de errors die daarboven staan. Waarschijnlijk bevat één van die zaken die waarbij staat "XMLHTTPrequest cannot load" staat de informatie over fragment 2 waardoor er undefined teruggegeven wordt. De javascript hierboven kijkt vervolgens of de variable de waarde 'undefined' heeft en laadt vervolgens alle content in één keer.
Vandaar dat het waarschijnlijk niet fout gaat als je niet ingelogd bent. Lijkt dus een bug te zijn in de code van sciencedirect.
[ Voor 14% gewijzigd door Sefyu op 17-05-2013 15:31 ]