2016-07-20 33 views
1

Wir haben ein Skript auf unserer Seite, die Werte an Dritte weitergibt.Erstellen Sie eine Variable aus Datenelement auf Seite

foo.bar.myPage({ 
    "myId": "12345", 
    "myName": "My name is Joe", 
}); 

Ich möchte eine neue Variable mit einem dieser Werte erstellen und für etwas anderes verwenden. Ich kann mir nicht vorstellen, wie ich den Wert von oben erfassen soll. Ich habe keinen Zugriff auf den obigen Code - dies muss mit Javascript oder jquery über ein CMS geschehen. Hilfe?

var valueFromMyId = $(myId); 
alert (valueFromMyId); 

Offensichtlich möchte ich "12345" in meinem Alarm auslösen.

+0

Unmöglich zu sagen, wir haben keine Ahnung, was myPage() tut und was es setzt – epascarello

+0

Wir wussten nicht, dass 'myPage' Funktion tut. Sie können 'foo.bar' mit' console.log (foo.bar) 'drucken und sehen, ob Sie Ihre Informationen dort finden ... – eisbehr

+0

Ich auch nicht ... das ist das Problem :) Ich werde das versuchen – user3390251

Antwort

0

Ich versuchte so etwas wie dieses:

foo = { 
     "bar":{ 
      "myPage":function(param){ 
        console.log("inside"+param); 
      } 
     }}; 

foo.bar.myPage(123); //print inside 123 

Nun ist diese Versuchen außer Kraft zu setzen, wenn Sie foo.bar zugreifen können.

var backup = foo.bar.myPage 
foo.bar.myPage = function(param){ 
      console.log("Using params outside the actual function "+ param); 
//calling the actual function which was getting called initially 
       backup(param); 
} 

jetzt wird jeder foo.bar.myPage Anruf gehen durch Ihre definieren Methode, auf diese Weise Sie param zugreifen können, bevor die eigentliche Funktion wird es.

Dies ist möglicherweise nicht der beste Weg, es zu tun. Aber funktioniert, wenn Sie Zugriff auf foo.bar-Objekt haben. Testen Sie und lassen Sie mich wissen, ob dies hilft.

+0

kein Zugriff auf foo.bar leider – user3390251

+0

Dafür benötigen Sie keinen Zugriff auf den Code. Sie überschreiben die Funktion zur Laufzeit. Das Problem könnte sein, die Funktion zwischen dem Laden des Skripts und der Zeile "foo.bar.myPage ({});" zu überschreiben. Aber dann könnte es funktionieren. – eisbehr

+0

@ user3390251, haben Sie tatsächlich versucht, dieses Code-Snippet zu verwenden? – Ninja