|
|
|
|
|
|
Mitglied
Registrierungsdatum: Jan 2003
Beiträge: 440
|
(Opera) User-Javascript Sammlung
Hallo!
Seit diesem Thread bin ich auf den Geschmack von Userjs-Dateien gekommen.
Und da hab ich mir gedacht, ich stell euch meine aktuellen Dateien mal vor, in der Hoffnung, dass der ein oder andere hier etwas nachlegt.
1. Kein Anonym.to
Steht zwar im oben verlinkten Thread, aber der Vollständigkeit halber ...
PHP-Code:
// ==UserScript==
// @name Gulli Kein AnonymTo
// @description Entfernt die anonym.to-redirection von Links
// @include http://board.gulli.com/*
// @include http://www.cc-community.net/*
// ==/UserScript==
document.addEventListener('DOMContentLoaded', function (e) {
var as = posts.getElementsByTagName('a');
for (var i = 0; i < as.length; i++) {
if(as[i].href.indexOf('http://anonym.to/?') == 0) {
as[i].href = unescape(as[i].href.substr(18)).replace(/&/g, '&');
}
}
}, false);
Wie zu sehen ist, funktioniert das auf jedem beliebigen vBulletin-Board (Z.B. cc-community.net)
2. YouTube autoplay stop
Hat mich schon immer genervt! Für FF gibts ein Plugin - bei Opera tuts dieses User-JS:
PHP-Code:
// ==UserScript==
// @name YouTube autoplay stop
// @description Verhindert das automatische Laden von YouTube-Videos
// @include http://*youtube.com/watch*
// ==/UserScript==
var done = false;
window.opera.addEventListener('BeforeScript',function(e) {
if (done == false && document.getElementById('watch-player-div') != null) {
done = true;
function playvid() {
container.removeChild(player);
player = document.createElement('div');
player.setAttribute('id', 'watch-player-div');
container.insertBefore(player, inject);
container.removeChild(inject);
writeMoviePlayer("watch-player-div");
}
var player = document.getElementById('watch-player-div');
var noplayer = document.getElementById('watch-noplayer-div');
var inject = document.createElement('div');
var container = document.getElementById('watch-this-vid');
inject.setAttribute('id', 'inject');
inject.setAttribute('style', 'cursor:pointer;width: 480px;height:395px;border:1px solid #00f;text-align:center;font: 700 32px/395px Verdana');
var text = document.createTextNode('Play >>');
inject.appendChild(text);
container.insertBefore(inject, player);
player.setAttribute('style','display: none;');
inject.addEventListener('click', playvid, false);
}
}, false);
Screenshot
3. YouTube Video-Download
Inspiriert von diesem Script. Blendet bei jedem YouTube-Video einen direkten Downloadlink ein (siehe Screenshot oben)
PHP-Code:
// ==UserScript==
// @name YouTube Video-Download
// @description Blendet bei jedem YouTube-Video einen direkten Downloadlink ein
// @include http://*youtube.com/watch*
// ==/UserScript==
addEventListener(window.opera?'DOMContentLoaded':'load',function(){
if (top == self) {
var loc=window.location.href;
function in2html(txt) {
if (!txt) return '';
var txthtml = txt.replace(/&/g,'&').replace(/</g,'<').replace(/>/g,'>');
return(txthtml);
}
var host=window.location.hostname;
var source;
var fileURL='';
var fileLabel='';
var scriptmedia=new Array();
function insertnotice() {
document.getElementsByTagName('html')[0].setAttribute('style','margin-top:22px;');
var gmnotice = document.createElement('div');
gmnotice.setAttribute('id','gmnotice');
gmnotice.setAttribute('style', 'position:fixed;top:0;right:0;width:100%;height:21px;padding:0 3px;background-color:#FFFA2F;border-bottom:1px solid #8C8C8C');
var p = document.createElement('p');
p.setAttribute('style','margin:0;padding:3px;font-family:arial,helvetica,sans-serif;color:#666666;font-size:12px;text-align:center;');
p.setAttribute('id','gmnotice-p');
var a = document.createElement('a');
a.setAttribute('style','padding: 0 20px;');
a.setAttribute('href', fileURL);
var text = document.createTextNode(fileLabel);
a.appendChild(text);
p.appendChild(a);
document.getElementsByTagName('body')[0].appendChild(gmnotice);
gmnotice.appendChild(p);
}
function extracturls() {
scriptmedia=document.getElementsByTagName('script');
for(i=0;i<scriptmedia.length;++i) {
source=scriptmedia[i].text.match(/video_id=S+&.+&t=.+&/i);
if (source != null) {
source = scriptmedia[i].text.match(/video_id=S+&.+&t=.+&/i);
source = in2html(String(source).replace(/(video_id=S+)&.+(&t=.+)&/i,'http:\/\/www.youtube.com\/get_video?$1$2'));
fileURL = source;
fileLabel = document.getElementById('watch-vid-title').childNodes[1].innerHTML + '.flv';;
insertnotice();
break;
}
}
};
extracturls();
}
}, false);
4. Gulli Nächste-Seite-Prefetch
Das hier ist mehr oder weniger Spielerei. Läd die nächste Seite eines Threads in ein iframe ..
PHP-Code:
// ==UserScript==
// @name Gulli Thread-Prefetch
// @description Prefetch der nächsten Thread-Seite
// @include http://board.gulli.com/thread/*
// ==/UserScript==
//opera.postError(top.frames.length);
if(top.frames.length > 0) {
window.opera.addEventListener("BeforeExternalScript",function(ejs){ejs.preventDefault();},false);
window.opera.addEventListener("BeforeScript",function(ejs){ejs.preventDefault();},false);
window.opera.addEventListener("BeforeEventListener",function(ejs){top.prefetching.setAttribute('style', 'display: none;');ejs.preventDefault();},false);
window.opera.addEventListener("BeforeEventListener.load",function(ejs){ejs.preventDefault();},false);
} else {
document.addEventListener('load', function () {
// Normale Seite
var html = document.getElementsByTagName("body");
html = html[0];
var prefetchdiv;
var writeiframe = function(url) {
if( !prefetchdiv ){
//in case the script doesn't reach here, don't append the element to the document tree
prefetchdiv=document.createElement("div");
prefetchdiv.setAttribute("id","prefetching")
prefetchdiv.setAttribute("style","position:fixed;top:0;left:0;width:200px;height:35px;background:#f00;color:#000;line-height:35px;text-align:center;font-weight:bold;");
prefetchdiv.innerHTML = 'Prefetching ..';
html.appendChild(prefetchdiv);
}
var ifr = document.createElement("iframe");
ifr.setAttribute("src", url);
ifr.setAttribute("style","display:none;");
prefetchdiv.appendChild(ifr);
}
// Suche nach Seite zum prefetchen
var divs = document.getElementsByTagName('div');
var pages = 1;
var cur_page = 1;
var cnt = 0;
for (var i = 0; i < divs.length; i++) {
if (divs[i].className == 'pagenav') {
var text = divs[i].childNodes[1].childNodes[0].childNodes[0].childNodes[0].innerHTML;
var pattern = /Seite (d+) von (d+)/;
pattern.exec(text);
cur_page = parseInt(RegExp.$1);
pages = parseInt(RegExp.$2);
break;
}
if (cnt++ > 23) break;
}
if (cur_page < pages) {
// Es gibt eine nächste Seite
var url = window.location.href.replace(/d+/$/, "") + (++cur_page) + '/';
writeiframe(url);
}
}, false);
}
|
15. 05. 2008, 22:32
|
#1
|
|
Alle Zeitangaben in UTC +1. Es ist jetzt 11:20 Uhr.
|
|