bitte um hilfe für ein greasemonkeyscript (js anfänger)
wsxedcrfv
- javascript
hi.
ich habe mit javascript erst angefangen und habe jetzt ein problem:
mein script soll auf linkbucks-seiten einen link mit der weiterführenden url am seitenanfang einfügen.
der script:
// ==UserScript==
// @name bc script linkbucks
// @namespace bc script linkbucks
// @description Skip/Bypass linkbucks page or etc without waiting
// @include *
// ==/UserScript==
//url
var _url_="";
if(document.title=="LinkBucks.com - Get your share!"){
//hier lese ich die url aus (sie steht leider in einem javascripttag):
_url_ = document.all.innerText.split("Lbjs.TargetUrl = '")[1].split("'")[0];
//insert url
//hier will ich den alten body durch einen neuen ersetzen, der am anfang
//meinen link stehen hat
var _newBody_='<a href="'+_url_+'">WEITER</a></br>'+document.all.innerText;
document.all.innerText = _newBody_;
}
hier bekomme ich den fehler: document.all.innerText is undefined
leider weiß ich nicht, was ich falsch mache.
document.all.innerText = _newBody_;
Weil du das ganze Dokument referenzierst und nicht ein beinhaltendes Element
Ich dachte document.all sollte man längst nicht mehr nutzen?!
Das hier
if(document.title=="LinkBucks.com - Get your share!")
ist eine absolute Fehlerquelle!
Nenne deine Seite einmal um und dein Script wird nicht mehr funktionieren. Das findest du so schnell nicht mehr.
Ich dachte document.all sollte man längst nicht mehr nutzen?!
was dann?
ok nun sieht mein script so aus:
...
//hier lese ich die url aus (sie steht leider in einem javascripttag):
var _bdy_=document.body.innerHTML;
var _url_ = _bdy_.split("Lbjs.TargetUrl = '")[1].split("'")[0];
//insert url
//hier will ich den alten body durch einen neuen ersetzen, der am
//anfang meinen link stehen hat
var _newBody_='<a href="'+_url_+'">WEITER</a></br>'+_bdy_;
_bdy_ = _newBody_;
mein problem:
document.body.innerText ist undefined.
document.body.innerHTML.split gibt es nicht.
kann ich irgendwie document.body.innerHTML als string behandeln, sodass ich split benutzen kannn? (bzw wie sollte ich das angehen, was sollte ich anders machen?)
ok funktioniert doch mit:
//hier lese ich die url aus (sie steht leider in einem javascripttag):
var _bdy_=document.body.innerHTML;
var _url_ = _bdy_.split("Lbjs.TargetUrl = '")[1].split("'")[0];
alert(_url_);
//insert url
//hier will ich den alten body durch einen neuen ersetzen, der am anfang
//meinen link stehen hat
var _newBody_='<a href="'+_url_+'">WEITER</a></br>'+_bdy_;
_bdy_ = _newBody_;
nur am anfang wird kein link eingefügt.....
ok jetzt wird der link eingefügt und das restliche htmldokument zerschossen (hier nicht so schlimm, nur unschön)
//hier lese ich die url aus (sie steht leider in einem javascripttag):
var _bdy_=document.body.innerHTML;
var _url_ = _bdy_.split("Lbjs.TargetUrl = '")[1].split("'")[0];
//alert(_url_);
//insert url
//hier will ich den alten body durch einen neuen ersetzen, der am anfang
//meinen link stehen hat
var _newBody_='<a href="'+_url_+'">WEITER</a></br>'+_bdy_;
document.body.innerHTML = _newBody_;
ps: sry für die mehrfachen posts... hatte nur zu spät die entsprechende idee
//hier lese ich die url aus (sie steht leider in einem javascripttag):
var _bdy_=document.body.innerHTML; var _url_ = _bdy_.split("Lbjs.TargetUrl = '")[1].split("'")[0]; //alert(_url_); //insert url //hier will ich den alten body durch einen neuen ersetzen, der am anfang //meinen link stehen hat var _newBody_='<a href="'+_url_+'">WEITER</a></br>'+_bdy_; document.body.innerHTML = _newBody_;
Macht den Eindruck als ginge das auch einfacher:
~~~javascript
var a = document.createElement('a');
a.href = Lbjs.TargetUrl;
a.textContent = 'weiter';
document.body.insertBefore( a, document.body.firstChild );