# Script aus einem Frame heraus starten



## LA1984 (28. Jul 2012)

Hey Leute,

ich habe da mal ein kleines Problem mit einem Script, dass ich aus einem Frame heraus öffnen bzw starten will. Meine Kenntnisse über Javascript sind zwar nicht die besten, allerdings reichen sie aus um so ein paar kleine Sachen zu erstellen. Den rest er google ich mir. Allerdings komme ich hier nicht weiter, also....

Im Normal fall hat man doch ein script:

```
function dasScriptbeispiel(){

alert("Ich bin nur ein kleines Beispiel");

}
```

Dieses Script lässt sich öffnen durch:

```
<a href="javascript:dasScriptbeispiel()" > link </a>
```


Wenn man diesen Link, allerdings in einem Frame drin hat sollte es ja so aussehen, damit es klappt:

```
<a href="javascript:top.dasScriptbeispiel()" > link </a>
```

###

Soweit funktioniert die Theorie auch bei mir, bei herkömmlichen kleinen selbst gebastelten Scripten.
Nun da ich aber wie gesagt nur über ein begrenztes Wissen an Javascript - Programmierung besitze und ich für ein kleines, feines und privates Projekt aber mir ein ganz bestimmtes Script aus dem Internet gegooglet habe komme ich mit meiner begrenzten Theorie nicht mehr weiter.

Das Script selbst sieh so aus:

```
isIE=document.all;
isNN=!document.all&&document.getElementById;
isN4=document.layers;
isHot=false;

function ddInit(e){
  topDog=isIE ? "BODY" : "HTML";
  whichDog=isIE ? document.all.theLayer : document.getElementById("theLayer");  
  hotDog=isIE ? event.srcElement : e.target;  
  while (hotDog.id!="titleBar"&&hotDog.tagName!=topDog){
    hotDog=isIE ? hotDog.parentElement : hotDog.parentNode;
  }  
  if (hotDog.id=="titleBar"){
    offsetx=isIE ? event.clientX : e.clientX;
    offsety=isIE ? event.clientY : e.clientY;
    nowX=parseInt(whichDog.style.left);
    nowY=parseInt(whichDog.style.top);
    ddEnabled=true;
    document.onmousemove=dd;
  }
}

function dd(e){
  if (!ddEnabled) return;
  whichDog.style.left=isIE ? nowX+event.clientX-offsetx : nowX+e.clientX-offsetx; 
  whichDog.style.top=isIE ? nowY+event.clientY-offsety : nowY+e.clientY-offsety;
  return false;  
}

function ddN4(whatDog){
  if (!isN4) return;
  N4=eval(whatDog);
  N4.captureEvents(Event.MOUSEDOWN|Event.MOUSEUP);
  N4.onmousedown=function(e){
    N4.captureEvents(Event.MOUSEMOVE);
    N4x=e.x;
    N4y=e.y;
  }
  N4.onmousemove=function(e){
    if (isHot){
      N4.moveBy(e.x-N4x,e.y-N4y);
      return false;
    }
  }
  N4.onmouseup=function(){
    N4.releaseEvents(Event.MOUSEMOVE);
  }
}

function hideMe(){
  if (isIE||isNN) whichDog.style.visibility="hidden";
  else if (isN4) document.theLayer.visibility="hide";
}

function showMe(){
  if (isIE||isNN) whichDog.style.visibility="visible";
  else if (isN4) document.theLayer.visibility="show";
}

document.onmousedown=ddInit;
document.onmouseup=Function("ddEnabled=false");
```

(Zu diesem Script gehört noch etwas html sourcecode, dass später als Layer - Design eiinfach nur durch das Script in den Fordergrund aktiviert wird, allerdings habe ich das einfach mal weg gelassen)

.. und dieses Script ruft man im eigentlichen Fall auch so auf:

```
<a href="javascript:showMe();">show</a>
```

... funktioniert auch an sich bestens....

*DOCH JETZT KOMMTs: Aus einem Frame heraus lässt es sich nicht öffnen. Obwohl ich schon den Link mit einem top.showMe() versehen habe und es ja eigentlich wie im funktionierendem beispiel weiter oben hätte eigentlich funktionieren müssen..... wüsste von euch jemand eine Idee ???

Wäre mir ganz angenehm wenn jemand eine echt korrekte Idee hätte und auch ziemlich sicher ist dass diese auch funktioniert.*

danke euch....

Lg
LA1984


----------



## pro2 (28. Jul 2012)

Für Verirrte - Fragen zu JavaScript - java-forum.org

Falsches Forum.


----------



## LA1984 (28. Jul 2012)

Wieso ?

Weil e sich nur um reines Java handelt, nicht aber um JavaScript ?? 
Oder nur falsche Kategorie ??

Lg


----------



## Final_Striker (28. Jul 2012)

LA1984 hat gesagt.:


> Wieso ?
> 
> Weil e sich nur um reines Java handelt, nicht aber um JavaScript ??



das steht hier drin-> http://www.java-forum.org/fuer-verirrte-fragen-javascript/15912-falschen-forum.html


```
function showMe(){
  if (isIE||isNN) whichDog.style.visibility="visible";
  else if (isN4) document.theLayer.visibility="show";
}
```

wenn isIE, isNN und isN4 false sind, wir z.B. auch nichts passieren.
so wie ich das verstehe


----------



## LA1984 (28. Jul 2012)

Hmm.....
Das Java nicht gleich Javasript ist, ist mir ja klar....
ich hab jetzt nur nicht drauf geachtet das hier nicht bei jaascript weiter geholfen werden kann.

Nagut, dann probiere ich es mal in anderen Foren.

Schönen Tag euch 

Lg
La1984


----------



## Evil-Devil (28. Jul 2012)

Sind die Inhalte der Frames von der selben Domain? Davon abgesehen wieso überhaupt Frames?


----------



## LA1984 (28. Jul 2012)

Nabend,

also..... sollte eher mal ein Versuch sein ein chat zu werden. An sich funktioniert auch alles. Eine Mischung zwischen Ajax und datenbank. Ich hab es schon mit scrollbaren DIVs probiert, aber da haben dann wieder um andere funktionieren niht mehr funktioniert. Deswegen ist das nun eine Frameseite geworden  Ist ja auch nur etwas spielerei was ich nebenher so dadran bastel.

Aber nun würde ich halt gerne dieses Script was ich schonmal angesprochen haben, nutzen. ..hmmm...
Dieses Fenster an sich... ist auch eher ein Iframe....

Lg
LA1984


----------

