2012-04-12 6 views
1

Ich habe folgende Seite enthält:Access-Element, die aktuelle <script>

<div><script>AddSomeContent(??, 1)</script></div> 
<div><script>AddSomeContent(??, 2)</script></div> 

Ich brauche die ?? mit dem umgebenden <div> DOM-Objekt zu ersetzen, so dass die Funktion AddSomeContent kann es ändern. Gibt es eine Möglichkeit, dies zu tun?

Vor anderen Kommentaren: Ich habe keine andere Option. Ich versuche bereits, eine existierende Seite zu hacken, und nur das, was ich kontrollieren kann, ist der Inhalt der <script>.

Ich benutze jquery, aber ich kann es ändern.

Edit: zur Klarstellung. AddSomeContent wie folgt aussieht:

function AddSomeContent(somediv, parameter) 
{ 
    $(somediv).append('there goes some data, that I dynamically create from some stuff depending on the parameter'); 
} 

Und ich möchte zuerst div mit parameter = 1 führen enthalten, zweite div parameter=2

+0

verwirrt auf, was Sie versuchen –

+0

Haben die DIVs zu erreichen haben jede Form von eindeutige Kennung? @PatrickScott es scheint, er versucht, das Div-Objekt übergeben, das das Skript-Tag als Argument in AddSomeContent() – Snuffleupagus

+0

@Patrick Scott Er versucht etwas wie

in HTML & JS. user1090190 Nein, das ist das Problem. –

Antwort

4

du versuchen können, wenn es so etwas wie ein Hack:

(function() { 
    var scr = document.getElementsByTagName('script'), 
     parent = scr[scr.length - 1].parentNode; 
    // parent is the parent node of the last script on the page 
})(); 

Wenn Sie habe Code in <script> Tags wie das, dann, wenn es das letzte Skript auf der Seite ausgeführt wird, ist derjenige, der es enthielt.

+0

Aber was, wenn Sie nicht wissen, ob das Skript-Tag das letzte sein wird? –

+2

Der Browser führt sofort den Code in jedem '

1

Ich erinnere mich an eine vorherige Frage. Die Anzahl der Skripts auf der Seite wird mit jedem Skript, das verarbeitet wird, um 1 erhöht, und sie werden der Reihe nach verarbeitet. So wird diese Funktion das aktuelle Skript-Nummer erhalten:

function countScripts() { 
    return document.scripts.length; 
} 

Dann können Sie die parentNode dieses Skript erhalten gehen:

var thisScriptParent = document.scripts[countScripts()].parentNode; 
Verwandte Themen