MyBB.de Forum

Normale Version: Twitter einbinden - Links sollen in neuem Fenster öffnen
Du siehst gerade eine vereinfachte Darstellung unserer Inhalte. Normale Ansicht mit richtiger Formatierung.

Hallo,

ich binde meine Tweets auf Twitter automatisch in in mein Forum ein.

# Code im Footer:
<script type="text/javascript" src="http://www.twitter.com/javascripts/blogger.js"></script>
<script type="text/javascript" src="http://twitter.com/statuses/user_timeline/NAME.json?callback=twitterCallback2&amp;count=10
"></script>

# Code im Forum:
<div id="twitter_div">
<ul id="twitter_update_list"></ul>
</div>

Das klappt ganz gut. Das Problem ist aber, dass die Links im gleichen Fenster öffnen, die Besucher also mein Forum verlassen. Ich möchte, dass die Links in einem neuen Fenster öffnen. Wie kann ich das machen ?

Vermutlich müsste dies irgendwo im nachstehenden Code geändert werden (http://www.twitter.com/javascripts/blogger.js). Die Datei müsste ich dann natürlich lokal speichern.

Kann mir jemand helfen ?

====================================

function twitterCallback2(twitters) {
var statusHTML = [];
for (var i=0; i<twitters.length; i++){
var username = twitters[i].user.screen_name;
var status = twitters[i].text.replace(/((https?|s?ftp|ssh)\:\/\/[^"\s\<\>]*[^.,;'">\:\s\<\>\)\]\!])/g, function(url) {
return '<a href="'+url+'">'+url+'</a>';
}).replace(/\B@([_a-z0-9]+)/ig, function(reply) {
return reply.charAt(0)+'<a href="http://twitter.com/'+reply.substring(1)+'">'+reply.substring(1)+'</a>';
});
statusHTML.push('<li><span>'+status+'</span> <a style="font-size:85%" href="http://twitter.com/'+username+'/statuses/'+twitters[i].id_str+'">'+relative_time(twitters[i].created_at)+'</a></li>');
}
document.getElementById('twitter_update_list').innerHTML = statusHTML.join('');
}

function relative_time(time_value) {
var values = time_value.split(" ");
time_value = values[1] + " " + values[2] + ", " + values[5] + " " + values[3];
var parsed_date = Date.parse(time_value);
var relative_to = (arguments.length > 1) ? arguments[1] : new Date();
var delta = parseInt((relative_to.getTime() - parsed_date) / 1000);
delta = delta + (relative_to.getTimezoneOffset() * 60);

if (delta < 60) {
return 'less than a minute ago';
} else if(delta < 120) {
return 'about a minute ago';
} else if(delta < (60*60)) {
return (parseInt(delta / 60)).toString() + ' minutes ago';
} else if(delta < (120*60)) {
return 'about an hour ago';
} else if(delta < (24*60*60)) {
return 'about ' + (parseInt(delta / 3600)).toString() + ' hours ago';
} else if(delta < (48*60*60)) {
return '1 day ago';
} else {
return (parseInt(delta / 86400)).toString() + ' days ago';
}
}

===============
Einfach bei dem <a... ein target="_blank" einfügen, das ist ja eigentlich nur normales HTML...
Kannst Du mir bitte noch die genaue Stelle nennen, an der ich das einfügen muss ?
<a href="url" target="_blank"></a> Wink
Hallo, mir fehlt immer noch die Stelle, an der ich dies einfügen kann. Dies müsste bestimmt irgendwo in der "function twitterCallback2(twitters)" (siehe oben) sein, aber wo und wie ?

Nochmal zur Erläuterung: Im Foren-Beitrag steht nur der Code
<div id="twitter_div">
<ul id="twitter_update_list"></ul>
</div>
Damit zieht er sich die letzten 20 Tweets - dies aktualisiert von selbst, der Inhalt des Beitrags im Forum ändert sich also mit jedem neuen Tweet.
Einmal Zeile 6 bei:
Code:
return '<a href="'+url+'">'+url+'</a>';
Dann Zeile 8
Code:
return reply.charAt(0)+'<a href="http://twitter.com/'+reply.substring(1)+'">'+reply.substring(1)+'</a>';
und Zeile 10
Code:
statusHTML.push('<li><span>'+status+'</span> <a style="font-size:85%" href="http://twitter.com/'+username+'/

Dort jeweils das target="_blank" wie oben beschrieben einfügen.
Super, das funktioniert bestens !