Register for your free account! | Forgot your password?

Go Back   elitepvpers > Coders Den > Web Development
You last visited: Today at 23:47

  • Please register to post and access all features, it's quick, easy and FREE!

Advertisement



JS Funktions/Variablenproblem

Discussion on JS Funktions/Variablenproblem within the Web Development forum part of the Coders Den category.

Reply
 
Old   #1
 
elite*gold: 0
Join Date: Jun 2011
Posts: 30
Received Thanks: 4
JS Funktions/Variablenproblem

huhu,
ich habe ein kleines Problem.
Und zwar möchte ich ein Userscript schreiben, dass ich dann mit Greasemonkey/Tampermonkey u.ä. auf den Seiten ausführen lasse.

Zu Demonstrationszwecken habe ich eine leere HTML-Datei, in die ich meine 2 Skripte eingebunden habe :
Hier einmal das normale Skript : (script.js)
Und hier das Userskript : (userscript.js)

Mein Ziel ist es, die Funktion show zu manipulieren.
Natürlich findet er jetzt die Variable text nicht.
Gibt es noch eine andere, einfachere Möglichkeit außer die Variable und alle Funktionen, die darauf zugreifen, neu im Userskript zu definieren ?

Ich hoffe, ich habe mich einigermaßen verständlich ausgedrückt.
Danke im Vorraus.
mfg Leo
First Chaos is offline  
Old 05/26/2013, 02:28   #2

 
boxxiebabee's Avatar
 
elite*gold: 0
Join Date: May 2008
Posts: 1,222
Received Thanks: 500
Entweder über unsafeWindow (wird aber z.B. von Chrome nicht unterstüzt) oder indem man den Code injected.

z.B.
Code:
function inject(func) {
    var script = document.createElement('script');
    script.innerHTML = "("+ func.toString() ")()";
    document.body.appendChild(script);
}

function myFunction() {
    //Code
}

inject(myFunction);
boxxiebabee is offline  
Old 05/27/2013, 16:20   #3
 
elite*gold: 0
Join Date: Aug 2012
Posts: 236
Received Thanks: 94
Bei Grease-/Tampermonkey ist eine Referenz namens unsafeWindow vorhanden.
Es sollte vermieden werden, neue Skriptknoten zu erzeugen. Das kann abgefangen werden und war eine Sicherheitslücke in Grease-/Tampermonkey. Daher gibt es nun nicht mehr nur window, sondern auch noch unsafeWindow, auch wenn letzteres nicht genutzt werden soll. Und wenn du unsafeWindow nutzt, solltest du auch @grant unsafeWindow einfügen.

Es ist an sich nicht möglich, Zugriff auf eine Variable zu erlangen, die in einem anderen Kontext steht. Solange es also keine Funktion wie Test.get gibt oder du alert nicht vorübergehend überschreiben möchtest, gibt es keinen einfacheren Weg als das Ersetzen aller Funktionen, die schreibend darauf zugreifen. Um es dir einfach zu machen, könntest du den gesamten Ausschnitt mit text im Kontext kopieren und dann in deiner Kopie alles nach deinen Wünschen gestalten, sofern der Ausschnitt nicht auf für dich unerreichbare Objekte zugreift oder sonstige wichtigen Aktionen durchführt.
Bist du dir sicher, dass Test eine globale Variable sein soll?
Tasiro is offline  
Old 05/27/2013, 18:16   #4
 
elite*gold: 0
Join Date: Jun 2011
Posts: 30
Received Thanks: 4
Ich verstehe nicht ganz, was mir unsafeWindow bringt.
Ich kann doch auch so neue Skriptknoten in der Seite erzeugen.
Das hilft mir doch bei meinem konkreten Problem nicht weiter, oder ?

Das Test-Objekt gibt es natürlich schon auf der eigentlichen Seite
Ich will eine Funktion nur verändern, die aber auf verschiedene Variablen und Funktionen zugreift, die mit var deklariert sind

mfg
First Chaos is offline  
Old 05/27/2013, 19:59   #5
 
elite*gold: 0
Join Date: Aug 2012
Posts: 236
Received Thanks: 94
unsafeWindow ist das window der eigentlichen Seite. Damit ist das Test mit var Test = unsafeWindow.Test ansprechbar. Du brauchst so keinen Knoten der ursprünglichen Seite hinzuzufügen, sondern kannst das alles aus deiner userscript.js steuern.

Es ist in Javascript unmöglich, auf einen "fremden" Kontext zuzugreifen. Meistens ist das aber auch gar nicht notwendig oder es gibt Hilfsfunktionen dafür, aber das kann ich von hier aus nicht einschätzen. An sich keine einfachere Möglichkeit, jene eine Funktion zu überschreiben. Wenn du die Seite und dein Ziel nennen würdest, könnte dir vielleicht besser weitergeholfen werden, das sieht irgendwie nach einem XY-Problem aus...
Tasiro is offline  
Reply


Similar Threads Similar Threads
[01.01.11] Skill D3D v.2 by Toxic [Entscheide Dich!] *Pro Funktions, Noob Funktions*
01/02/2011 - WarRock Hacks, Bots, Cheats & Exploits - 31 Replies
Hey Leute, In diesem Hack müsst ihr euch Entscheiden. Seit ihr Noob oder Pro? Screen: http://img715.imageshack.us/img715/7682/men4skill .png
D3D Funktions
11/28/2010 - WarRock Hacks, Bots, Cheats & Exploits - 0 Replies
Hi ich hatte mal die NoMenu Funktions gepostet diesmal poste ich D3D Funktions sind aber nicht von mir (Vip0n) No Fog: if (nofog) { m_pD3Ddev->SetRenderState(D3DRS_FOGENABLE, false); } WireFrame: if (m_Stride == 44)



All times are GMT +1. The time now is 23:48.


Powered by vBulletin®
Copyright ©2000 - 2026, Jelsoft Enterprises Ltd.
SEO by vBSEO ©2011, Crawlability, Inc.
This site is protected by reCAPTCHA and the Google Privacy Policy and Terms of Service apply.

Support | Contact Us | FAQ | Advertising | Privacy Policy | Terms of Service | Abuse
Copyright ©2026 elitepvpers All Rights Reserved.