Avatar billede gider_ikke_mere Nybegynder
26. oktober 2005 - 11:38 Der er 12 kommentarer og
1 løsning

Variabel af #navn

Fra Excel skal jeg kalde en side index.htm som består af en højre- og venstreframe. Jeg kan fra Excel ikke overføre variabler, kun a-names f.eks. således:

Application.Help ("c:\EPLAN4\EXCEL\Generatorhjælp\index.htm#HALLO").

Jeg skal have loadet en bestemt side i højre frame. kan jeg bruge mit a-name #HALLO til dette?
f.eks:
Application.Help ("c:\EPLAN4\EXCEL\Generatorhjælp\index.htm#testside.htm"), og hvordan opbygger jeg en kode som i index.htm loader testside.htm i højre frame?

Index ser således ud:

<html>
  <head>

  <title>HJAELP</title>
  </head>
  <frameset cols="30%,70%">
    <frame name="VENSTRE" src="venstre.htm">
    <frame name="HOJRE">
  </frameset>
</html>

Normalt bruger jeg følgende kode til at loade sider i frames:

function MM_goToURL() { //v3.0
  var i, args=MM_goToURL.arguments; document.MM_returnValue = false;
  for (i=0; i<(args.length-1); i+=2) eval(args[i]+".location='"+args[i+1]+"'");
}

... og kalder med f.eks:

onload="MM_goToURL('parent.frames[\'VENSTRE\']',hojrevar,'parent.frames[\'HOJRE\']','hojre.htm');return document.MM_returnValue"

Tilsyneladende kan jeg fra Excel godt skrive 2*# således jeg måske både kunne kalde en bestemt side, og hoppe til et bestemt sted på siden!
Således:

Application.Help ("c:\EPLAN4\EXCEL\Generatorhjælp\index.htm#testside.htm#HALLO").
Avatar billede roenving Novice
27. oktober 2005 - 14:55 #1
F.eks.

<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Frameset//EN" "http://www.w3.org/TR/html4/frameset.dtd">
<html>
  <head>
    <title>HJAELP</title>
    <script type="text/javascript">
      window.onload = function(){
        var urls = location.href.split("#");
        if(urls.length>1)
          window.HOJRE.location.href = urls[1];
      }
    </script>
  </head>
  <frameset cols="30%,70%">
    <frame name="VENSTRE" src="venstre.htm">
    <frame name="HOJRE">
  </frameset>
</html>
Avatar billede gider_ikke_mere Nybegynder
27. oktober 2005 - 15:39 #2
Virker!
Ved body onload på den side som loades skal jeg så åbenbart putte samme script
<script language="JavaScript" src="../js/funktioner.js"></script>
    <script type="text/javascript">
      window.onload = function(){
        var urls = location.href.split("#");
        if(urls.length>1)
          window.HOJRE.location.href = urls[2];
      }
    </script>


... blot med urls[1]; ændret til '#'+urls[2]; som parameter, men det virker ikke!
Avatar billede gider_ikke_mere Nybegynder
27. oktober 2005 - 15:42 #3
Hvordan kan man "printe" en variabel fra et javascript på en side? jeg tænker ikke på document.write som genskriver hele siden men en kommando som skriver variablen i det eksisterende vindue.
Avatar billede roenving Novice
27. oktober 2005 - 15:48 #4
Det, du skal bruge kun på siden, kunne være:

    <script type="text/javascript">
      window.onload = function(){
        var urls = location.href.split("#");
        if(urls.length>1)
          parent.HOJRE.location.href = urls[1];
        if(urls.length>2)
          location.href = urls[2];
      }
    </script>

-- hvilken doctype bruger du ?-)

-- hvis du bruger almindelig html, er der to muligheder:

var txt = "Dette er en tekst";
document.getElementById('minSpan').innerHTML = txt;

eller
var txt = "Dette er en tekst";
document.getElementById('minSpan').firstChild.nodeValue = txt;

med elementet sådan:

<span id="minSpan">&nbsp;</span><!-- &nbsp; er _meget_ vigtig !o] -->

-- kun den sidste vil virke i ordentlig xhtml !-)
Avatar billede gider_ikke_mere Nybegynder
27. oktober 2005 - 17:27 #5
Spm 1: urls[2] er jo et "named Anchor" a la

<a name="test"></a>

Spm 2: Hvis (var txt = "Dette er en tekst") vil jeg bare have skrevet variablens værdi (Dette er en tekst) det sted på siden hvor scriptet er lavet a la <?php echo $txt; ?> (Hvis du kender noget til PHP). En kontrol af om ens variabel har fået den værdi man har tiltænkt den.

Doctype? Jeg aner det ikke! Jeg opretter normalt altid mine dokumenter med Dreamweaver.
Enten html: <meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1">
eller PHP: <meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1">

Jeg har ikke sat mig ind i hvad de forskellige Meta tags betyder. Indtil videre har jeg klaret mig fint med almindelig HTML4, PHP, samt hugget lidt javascript hist og her. Ovenstående skal IKKE bruges hvor PHP er tilgængelig, så havde jeg nemt klaret den selv. Det er først de sidste par uger jeg har prøvet at sætte mig lidt ind i Javascripts(ved ikke engang om det er Java, Javascript eller noget andet jeg hugger), men det er indtil videre for mig sort snak. Jeg tror nok at det med scripts der driller mig mest er at jeg lige har fundet ud af at jeg for hver eneste ændring jeg laver i et script skal huske at slette mine temp int. filer, selvom IE er sat op til at checke ved hvert besøg på siden! Måske er Firefox bedre på det område? Jeg mangler i øvrigt stadig et link til en god Javascript Resourceside hvor man kan lære lidt om JS. Alle sider jeg finder om JS har masser af eksempler til download, men intet om hvad- og hvordan JS virker. Jeg troede det var Sun der havde opfundet JS, men der kan jeg intet finde!
Avatar billede roenving Novice
27. oktober 2005 - 17:33 #6
DOCTYPE er _ikke_ et meta-tag, men noget som _skal_ skrives foran html-tagget !-)

-- hvis du linker direkte til et named anchor i et dokument, ændres resten af urlen ikke, men måske mangler der lige et hash-tegn:

location.href = "#" + urls[2];
Avatar billede gider_ikke_mere Nybegynder
27. oktober 2005 - 17:47 #7
Ja, det har jeg prøvet som skrevet i 27/10-2005 15:39:21, men 2. variabel bliver bare behandlet som en url og siden springer til www.noget.dk/test og skriver selvfølgelig at siden ikke kan vises (framesettet er helt væk). Der linkes først rigtigt og derefter hoppes straks videre!
Avatar billede roenving Novice
27. oktober 2005 - 17:51 #8
Prøv at sætte det _kun_ i den frame, hvor ankret er !-)
Avatar billede gider_ikke_mere Nybegynder
27. oktober 2005 - 21:16 #9
Nu har jeg i index:

    <script type="text/javascript">
      window.onload = function(){
        var urls = location.href.split("#");
        if(urls.length>1)
          window.HOJRE.location.href = urls[1];
      }
    </script>

... og i HOJRE

    <script type="text/javascript">
      window.onload = function(){
        var urls = location.href.split("#");
        if(urls.length>1)
          parent.HOJRE.location.href = urls[1];
        if(urls.length>2)
          location.href = '#'+urls[2];
      }
    </script>
... men det virker ikke!
Avatar billede roenving Novice
28. oktober 2005 - 09:07 #10
Du skal ikke have noget i hverken index eller HOJRE, men kun i VENSTRE:

    <script type="text/javascript">
      window.onload = function(){
        var urls = location.href.split("#");
        if(urls.length>1)
          parent.HOJRE.location.href = urls[1];
        if(urls.length>2)
          location.href = '#'+urls[2];
      }
    </script>
Avatar billede gider_ikke_mere Nybegynder
16. august 2006 - 11:00 #11
Fik en prof. til at lave en løsning i ASP. Hun delte strengen op via javascript, f.eks. ved tegnet # og kunne på den måde lave lige så mange variabler hun ville.

Jeg arbejder ikke med ovenstående mere og har ikke løsningen.
Du får bare pointene roenving!
Avatar billede roenving Novice
17. august 2006 - 16:38 #12
Oki '-)
Avatar billede roenving Novice
19. august 2006 - 12:07 #13
-- og tak for point ;~}
Avatar billede Ny bruger Nybegynder

Din løsning...

Tilladte BB-code-tags: [b]fed[/b] [i]kursiv[/i] [u]understreget[/u] Web- og emailadresser omdannes automatisk til links. Der sættes "nofollow" på alle links.

Loading billede Opret Preview
Kategori
Vi tilbyder markedets bedste kurser inden for webudvikling

Log ind eller opret profil

Hov!

For at kunne deltage på Computerworld Eksperten skal du være logget ind.

Det er heldigvis nemt at oprette en bruger: Det tager to minutter og du kan vælge at bruge enten e-mail, Facebook eller Google som login.

Du kan også logge ind via nedenstående tjenester