Javascript in Widget - Link öffnen

simusch

simusch

Aktives Mitglied
Thread Starter
Dabei seit
27.09.2004
Beiträge
2.030
Reaktionspunkte
219
hallo zusammen!

ich bin leider was javascript anbelangt ein CopyPaster... ein wenig anpassen schaffe ich :)

mein Problem:

ich bin dabei, ein Widget für Dashboard zu coden (das zweite bereits...)
Im Widget wird eine bereitgestellte HTML-Seite angezeigt, was auch wunderbar funktioniert..

jetzt sollte ich aber die LINKS umformen können, damit das Widget sie im Browser öffnet und nicht im Widget selbst...
Was ich bis jetzt weiss, ist, dass der Link so aussehen sollte:

Code:
<a href="javascript:if (window.widget) {widget.openURL('http://www.link.com/blabla/bla.html');}">Linktext</a>

doch mein Link sieht so aus:

Code:
<a href="http://www.link.com/blabla/bla.html">Linktext</a>

kann mir jemand helfen?? :)

-> forum oder icq 135526274 oder aim wwjt@mac.com

DANKE
 
Also zuerst einmal: Was ist ein Widget? :) Habe diesen Begriff noch nie gehört. Ist das ein Popup-Fenster?

Was genau soll jetzt passieren? Soll der erste Link automatisch zum zweiten Link umgeformt werden? Per JavaScript?

Das kannst Du so ungefähr machen:

Code:
function linksUmformen() {
   for(i=0;i<document.getElementsByTagName('a').length;i++) {
      document.getElementsByTagName('a')[i].setAttribute('href',"javascript:if (window.widget) {widget.openURL('"+document.getElementsByTagName('a')[i].getAttribute('href')+"');}")
   }
}
 
ein Widget ist ein kleines Ding, das im Mac OSX Tiger im Dashboard läuft...

danke für deinen Code, aber irgendwie schaff ich's nicht...

ist wohl ein spezialfall, weil kein "document" vorhanden ist...


hilft dir das?:

Code:
function updateWidget()
{
	if (window.widget) 
	{
	   var Content = document.getElementById('mainContent');

	   var url = "http://www.adresse.com/datei.php";
	
	   var req = new XMLHttpRequest();
	   req.open("GET", url, false);
	   req.send(null);
        output = req.responseText;

        output = linksUmformen();

        document.getElementById('mainContent').innerHTML = output;
    }
}

function linksUmformen()
{
   for(i=0;i<document.getElementsByTagName('a').length;i++)
   {
        document.getElementsByTagName('a')[i].setAttribute('href',"javascript:if (window.widget) {widget.openURL('"+document.getElementsByTagName('a')[i].getAttribute('href')+"');}")
   }
}

als erstes wird der angegebene Link angewählt und das, was zurückgegeben wird, eingelesen.

als zwischenschritt, bevor der text in die datei geschrieben wird, sollten eben die links umgeformt werden...

was mach ich falsch?
 
weiss denn jemand sonst weiter?
 
Ah, verstehe. Sorry, ich besitze ja leider keinen Mac und kenne mich deswegen nicht so besonders aus. ;)

Mein Code war für ein komplettes window-Objekt gedacht, in dem alle Links dann umgeformt worden wären.

Wenn ich das jetzt richtig verstanden habe, dann ist in der Variable output ein einfacher String, der die ganzen Links enthält. Und in diesem String willst Du die hrefs ändern, ja?

Das könnte so funktionieren:

Code:
while(output.match(/<a href="(http.*?)"/))
   output=output.replace(/<a href="http.*?"/,'<a href="javascript:if(window.widget){widget.openURL(\''+RegExp.$1+'\');}"');
Leerzeichen entfernen nicht vergessen. (zwischen open und URL)
Füge das mal an der Stelle ein wo Du
Code:
output = linksUmformen();
stehen hast.
 
besten Dank!

ich hab's doch noch mit der ersten Variante geschafft...

Es scheint jetzt alles zu funktionieren :)
 
Was machsten fürn Widget?
 
Jakob, hast du nicht letztens noch eine WG in Koeln gesucht?
 
ein Widget, das Programm, News und Downloads anzeigt, nämlich unserer Kirche...

Es nimmt Formen an... :)
 
@mac: Ja :D

@simusch: Na dann hast Du ja besten Beistand. Viel Spaß noch!
 
Zurück
Oben Unten