MyBB.de Forum
Twitter einbinden - Links sollen in neuem Fenster öffnen - Druckversion

+- MyBB.de Forum (https://www.mybb.de/forum)
+-- Forum: Sonstiges (https://www.mybb.de/forum/forum-1.html)
+--- Forum: Programmierung (https://www.mybb.de/forum/forum-32.html)
+--- Thema: Twitter einbinden - Links sollen in neuem Fenster öffnen (/thread-24310.html)



Twitter einbinden - Links sollen in neuem Fenster öffnen - jonas11 - 13.12.2011


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';
}
}

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


RE: Twitter einbinden - Links sollen in neuem Fenster öffnen - StefanT - 13.12.2011

Einfach bei dem <a... ein target="_blank" einfügen, das ist ja eigentlich nur normales HTML...


RE: Twitter einbinden - Links sollen in neuem Fenster öffnen - jonas11 - 13.12.2011

Kannst Du mir bitte noch die genaue Stelle nennen, an der ich das einfügen muss ?


RE: Twitter einbinden - Links sollen in neuem Fenster öffnen - phantom - 13.12.2011

<a href="url" target="_blank"></a> Wink


RE: Twitter einbinden - Links sollen in neuem Fenster öffnen - jonas11 - 13.12.2011

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.


RE: Twitter einbinden - Links sollen in neuem Fenster öffnen - modercol - 14.12.2011

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.


RE: Twitter einbinden - Links sollen in neuem Fenster öffnen - jonas11 - 14.12.2011

Super, das funktioniert bestens !