Javascript-gegeneerde content dynamisch aanpassen

Status
Niet open voor verdere reacties.

vicmortelmans

Nieuwe gebruiker
Lid geworden
2 nov 2008
Berichten
3
Hallo,

ik maak een webpagina waarop een javascript-gadget van google verschijnt, meerbepaald een 'customrss'-view op een bepaalde RSS-feed. De code in mijn html is die door google wordt gegenereerd:

<script src="http://www.gmodules.com/ig/ifr?url=http://customrss.googlepages.com/customrss.xml&amp;up_rssurl=[URL VAN DE RSS-FEED]&amp;[HIER VOLGEN EEN HELEBOEL NAME-VALUES DIE DE VIEW CONFIGUREREN]"></script>

Nu wil ik dat de gebruiker in een drop-down een selectie kan maken, en dat op basis daarvan een andere feed wordt opgeladen, dat wil zeggen, dat een andere <script src="..."></script> wordt ingeladen.

Ik kan met javascript wel op basis van de drop-down de html-inhoud van de pagina dynamisch aanpassen, maar slaag er niet in de source van de javascript-gadget aan te passen.

Hetzelfde probleem doet zich voor met een knop die ik heb opgenomen, gegenereerd door code van addtoany.com: ook die zou moeten verwijzen naar de nieuwe feed.

Iemand ervaring hiermee?

Groeten,
Vic
 
Ik heb nog niet veel verstand van javascript, maar zou het zo kunnen? :

PHP:
<script type="text/javascript">
function VeranderInhoud(id, nieuweurl) {
a = document.getElementById(id);
a.setAttribute('src', nieuweurl);
}
</script>

<script id="1" src="STANDAARDWAARDE"></script>
<a href="#" onclick="VeranderInhoud("1", "http://www.gmodules.com/ig/ifr?url=http://customrss.googlepages.com/customrss.xml&amp;up_rssurl=[URL VAN DE RSS-FEED]&amp;[HIER VOLGEN EEN HELEBOEL NAME-VALUES DIE DE VIEW CONFIGUREREN]")">Klik hier voor inhoud voorbeeld</a>

Groet!!
 
Hallo,

bedankt voor de feedback. Ik heb het eens uitgeprobeerd, maar de gadget wordt niet ge-update. Ik denk dat de nieuwe code wel in de DOM van de pagina terechtkomt (dat kan ik bv. zien in firebug: de nieuwe src-info verschijnt wel degelijk in de html-view!), maar ze wordt blijkbaar niet uitgevoerd: de oorspronkelijke code blijft de gadget beheren.

Dit artikel is zowat het verregaandst model voor dynamische javascript-code dat ik kon vinden:
http://www.javascriptkit.com/javatutors/loadjavascriptcss2.shtml

Het leert hoe je een nieuwe 'src' kan inladen in het <head>-element van een pagina, en op die manier nieuwe functies kan inladen om te worden opgeroepen... maar dat lijkt me voor mij geen oplossing, want (1) ik heb niks aan functies in de <head>, ik wil output genereren in de <body> en (2) ook in dit model blijven de nieuwe functies non-actief, tot ze door een nieuwe call van de user worden geactiveerd...

Groeten,
Vic
Intussen naarstig op zoek naar een alternatieve oplossing :confused:

Ik heb nog niet veel verstand van javascript, maar zou het zo kunnen? :

PHP:
<script type="text/javascript">
function VeranderInhoud(id, nieuweurl) {
a = document.getElementById(id);
a.setAttribute('src', nieuweurl);
}
</script>

<script id="1" src="STANDAARDWAARDE"></script>
<a href="#" onclick="VeranderInhoud("1", "http://www.gmodules.com/ig/ifr?url=http://customrss.googlepages.com/customrss.xml&amp;up_rssurl=[URL VAN DE RSS-FEED]&amp;[HIER VOLGEN EEN HELEBOEL NAME-VALUES DIE DE VIEW CONFIGUREREN]")">Klik hier voor inhoud voorbeeld</a>

Groet!!
 
Hier is een vereenvoudigde versie van mijn pagina (inc. de voorgestelde oplossing).

Initieel toont die een feed voor gegevens gefilterd op Thuringen, en als je op de link klikt, zou die moeten omschakelen naar een feed met de gegevens gefilterd op Saarland.

Als je trouwens firebug gebruikt, kan je heel goed zien dat het src-attribuut wel degelijk wordt aangepast, maar dat weerspiegelt zich niet in de weergave van de pagina.


<html>
<head>
<script>
function go ()
{
a = document.getElementById("s1");
a.setAttribute('src', 'http://www.gmodules.com/ig/ifr?url=http://customrss.googlepages.com/customrss.xml&amp;up_rssurl=http%3A%2F%2Fpipes.yahoo.com%2Fpipes%2Fpipe.run%3FLand%3DSaarland%26_id%3Dvnc4qM2g3RGNCkAPpwt1Yg%26_render%3Drss&amp;up_title=&amp;up_titleurl=&amp;up_num_entries=10&amp;up_linkaction=showdescription&amp;up_background=FFFFFF&amp;up_border=7e7ebc&amp;up_round=0&amp;up_fontfamily=Verdana&amp;up_fontsize=8pt&amp;up_openfontsize=9pt&amp;up_itempadding=3px&amp;up_bullet=icon&amp;up_custicon=Overrides%20favicon.ico&amp;up_boxicon=0&amp;up_opacity=20&amp;up_itemlinkcolor=000000&amp;up_itemlinkweight=Normal&amp;up_itemlinkdecoration=None&amp;up_vlinkcolor=444444&amp;up_vlinkweight=Normal&amp;up_vlinkdecoration=None&amp;up_showdate=1&amp;up_datecolor=9F9F9F&amp;up_tcolor=ffffff&amp;up_thighlight=7e7ebc&amp;up_desclinkcolor=1B5790&amp;up_color=000000&amp;up_dback=FFFFFF&amp;up_dborder=7e7ebc&amp;up_desclinkweight=Bold&amp;up_desclinkdecoration=None&amp;synd=open&amp;w=300&amp;h=400&amp;title=&amp;border=%23ffffff%7C3px%2C1px+solid+%23999999&amp;output=js');
}
</script>
</head>
<body>
<div id="s1pd">
<p id="s1p">
<script id="s1" src="http://www.gmodules.com/ig/ifr?url=http://customrss.googlepages.com/customrss.xml&amp;up_rssurl=http%3A%2F%2Fpipes.yahoo.com%2Fpipes%2Fpipe.run%3FLand%3DTh.ringen%26_id%3Dvnc4qM2g3RGNCkAPpwt1Yg%26_render%3Drss&amp;up_title=&amp;up_titleurl=&amp;up_num_entries=10&amp;up_linkaction=showdescription&amp;up_background=FFFFFF&amp;up_border=7e7ebc&amp;up_round=0&amp;up_fontfamily=Verdana&amp;up_fontsize=8pt&amp;up_openfontsize=9pt&amp;up_itempadding=3px&amp;up_bullet=icon&amp;up_custicon=Overrides%20favicon.ico&amp;up_boxicon=0&amp;up_opacity=20&amp;up_itemlinkcolor=000000&amp;up_itemlinkweight=Normal&amp;up_itemlinkdecoration=None&amp;up_vlinkcolor=444444&amp;up_vlinkweight=Normal&amp;up_vlinkdecoration=None&amp;up_showdate=1&amp;up_datecolor=9F9F9F&amp;up_tcolor=ffffff&amp;up_thighlight=7e7ebc&amp;up_desclinkcolor=1B5790&amp;up_color=000000&amp;up_dback=FFFFFF&amp;up_dborder=7e7ebc&amp;up_desclinkweight=Bold&amp;up_desclinkdecoration=None&amp;synd=open&amp;w=300&amp;h=400&amp;title=&amp;border=%23ffffff%7C3px%2C1px+solid+%23999999&amp;output=js"></script>
</p>
</div>
<p>
<a href="#" onclick="go()">
Verander
</a>
</p>
</body>
</html>
 
Nu wil ik dat de gebruiker in een drop-down een selectie kan maken, en dat op basis daarvan een andere feed wordt opgeladen, dat wil zeggen, dat een andere <script src="..."></script> wordt ingeladen.
Ah, tsja, daar zit ik dus ook mee te worstelen. Zover ik weet kan je dus NIET via javascript meer javascript aanroepen!

Op mn site gebruik ik 'ajax' (javascript dus) om pagina's te laden 'zonder refresh'. Leuk en aardig, maar ik stuitte op het feit dat als je via dit een <script></script> laad, het niet werkt. Ook javascript-functies werkten niet goed...

Mischien kan een van de javascript experts dit bevestigen.


:thumb:
 
document.write() kan niet meer nadat de html tag gesloten is (nadat de pagina is geladen).

Je kunt wel een iframe gebruiken. Desnoods met een php backend.
 
Status
Niet open voor verdere reacties.
Terug
Bovenaan Onderaan