[javascript] variabele meegeven in een link

Pagina: 1
Acties:
  • 550 views sinds 30-01-2008
  • Reageer

  • 6bit
  • Registratie: Februari 2002
  • Laatst online: 19-06-2022
Ik wil vanuit een link een pagina openen, met daarin een iframe, ik wil dat wat er geopend moet worden in de iframe afhangen van wat ik meegeef voor variabele met de link.

Ik zit vast aan javascript, en probeer nu een variable mee te geven door:

blabla.html?variframe=product

vervolgens bij de src van de iframe heb ik staan

src=" javascript: '$_GET['variframe']' . '.html' ; "

denk ik te veel php en werkt dit niet bij javascript en is er dan misschien een andere manier waardoor dit wel mogelijk is met javascript.

the things we fear most have already happened to us


  • Woudloper
  • Registratie: November 2001
  • Niet online

Woudloper

« - _ - »

Op onderstaande wijze kan je parameters opvragen...

code:
1
2
var mijnvariabele = window.location.search;
alert(mijnvariabele);

  • wizzkizz
  • Registratie: April 2003
  • Laatst online: 19-12-2025

wizzkizz

smile...tomorrow will be worse

Woudloper schreef op donderdag 03 november 2005 @ 09:32:
Op onderstaande wijze kan je parameters opvragen...

code:
1
2
var mijnvariabele = window.location.search;
alert(mijnvariabele);
let wel dat je dan alleen de hele querystring op kan halen en geen losse delen (afaik).
Als je meerdere variabelen gebruikt, kun je de juiste wel ophalen met een eenvoudige regex.
oh ja, de url wijzigen mbv js doe je met location.href of location.replace


edit:
bedenk wel dat als je het op deze manier in js omzet, je site dan enorm kwetsbaar is voor fraude. Niets weerhoudt mij ervan om http://foutewebsite/ergfoutscript.cgi? op te geven als variabele variframe, waardoor hij zo mijn foute script laadt.

[ Voor 28% gewijzigd door wizzkizz op 03-11-2005 09:42 ]

Make it idiot proof and someone will make a better idiot.
Real programmers don't document. If it was hard to write, it should be hard to understand.


  • André
  • Registratie: Maart 2002
  • Laatst online: 23-04 12:47

André

Analytics dude

Zo moet het wel werken:
PHP:
1
<iframe src="<?php echo $_GET['variframe'] . '.html'?>">

  • 6bit
  • Registratie: Februari 2002
  • Laatst online: 19-06-2022
ik snap het nog niet helemaal hoe zorg ik er nou voor dat dat het megegeven wordt met de link dus zoals post of get werken bij php en dat ik het kan oproepen bij de src van de iframe.

the things we fear most have already happened to us


  • wizzkizz
  • Registratie: April 2003
  • Laatst online: 19-12-2025

wizzkizz

smile...tomorrow will be worse

André schreef op donderdag 03 november 2005 @ 09:40:
Zo moet het wel werken:
PHP:
1
<iframe src="<?php echo $_GET['variframe'] . '.html'?>">
nee, want hij zit vast aan javascript en kan blijkbaar geen php gebruiken :p

Make it idiot proof and someone will make a better idiot.
Real programmers don't document. If it was hard to write, it should be hard to understand.


  • 6bit
  • Registratie: Februari 2002
  • Laatst online: 19-06-2022
André schreef op donderdag 03 november 2005 @ 09:40:
Zo moet het wel werken:
PHP:
1
<iframe src="<?php echo $_GET['variframe'] . '.html'?>">
ja dat klopt en was het maar waar dat dat kon, maar ik heb geen php tot mijn beschikking, ik zit gebonden aan javascript.

the things we fear most have already happened to us


  • wizzkizz
  • Registratie: April 2003
  • Laatst online: 19-12-2025

wizzkizz

smile...tomorrow will be worse

6bit schreef op donderdag 03 november 2005 @ 09:43:
ik snap het nog niet helemaal hoe zorg ik er nou voor dat dat het megegeven wordt met de link dus zoals post of get werken bij php en dat ik het kan oproepen bij de src van de iframe.
http://techpatterns.com/forums/about147.html staat vast wel wat nuttigs bij voor je

Make it idiot proof and someone will make a better idiot.
Real programmers don't document. If it was hard to write, it should be hard to understand.


  • 6bit
  • Registratie: Februari 2002
  • Laatst online: 19-06-2022
Ok, ik snap nu wel dat het anders werkt bij javascript en volgens mij heb ik de juiste functie nu ook wel, maar hoe roep ik het nu aan in de iframe tag

<iframe src= "if (qsParm['variframe']) document.write(qsParm['variframe'] + '.html'); "></iframe>

ik kan er geen script tags bij instoppen....

the things we fear most have already happened to us


  • wizzkizz
  • Registratie: April 2003
  • Laatst online: 19-12-2025

wizzkizz

smile...tomorrow will be worse

6bit schreef op donderdag 03 november 2005 @ 10:11:
Ok, ik snap nu wel dat het anders werkt bij javascript en volgens mij heb ik de juiste functie nu ook wel, maar hoe roep ik het nu aan in de iframe tag

<iframe src= "if (qsParm['variframe']) document.write(qsParm['variframe'] + '.html'); "></iframe>

ik kan er geen script tags bij instoppen....
je kunt een id meegeven aan dat iframe en de src standaard op bv about:blank zetten. in een functie kun je dan de src van dat iframe wijzigen, waarbij je die functie op elk moment kunt aanroepen., dus zo iets (niet getest, dus geen garantie dat het werkt, intended as example only):
code:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
<script type="text/javascript">
  function loadIFrame(){
    //lees hier je variabele in om de url te bepalen en sla die op in bijv. variabele url

    var iframe = ( document.getElementById ) ? document.getElementById( "iframe" ) : ( document.all ) ? document.all["iframe"] : null;
    if( iframe ) 
      iframe.location.href = url; // moet mss wel met iframe.src = url; 
    else
      alert( "Kan het iframe niet vinden :(" );
  };
</script>

<span onclick="loadIFrame();">iframe laden</span>

<iframe id="iframe" src="about:blank" ... ></iframe>

waarbij die puntje in de iframe-tag staan voor eventuele andere attributen en je het script-gedeelt bij voorkeur in je head-sectie zet.

[ Voor 30% gewijzigd door wizzkizz op 03-11-2005 10:23 ]

Make it idiot proof and someone will make a better idiot.
Real programmers don't document. If it was hard to write, it should be hard to understand.


  • 6bit
  • Registratie: Februari 2002
  • Laatst online: 19-06-2022
<span onclick="loadIFrame();">iframe laden</span>

waar komt dit te staan en waar is het voor?

ik heb dit nu staan: het werkt nog steeds niet

code:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">

<html xmlns="http://www.w3.org/1999/xhtml">

    <head>
        <meta http-equiv="content-type" content="text/html;charset=utf-8" />
        <meta name="generator" content="Adobe GoLive" />
        <title>home</title>
        <link href="../../anylink.css" rel="stylesheet" type="text/css" media="all" />
        
    <script language="javascript">
    var qsParm = new Array();
function qs() {
var query = window.location.search.substring(1);
var parms = query.split('&');
for (var i=0; i<parms.length; i++) {
   var pos = parms[i].indexOf('=');
   if (pos > 0) {
      var key = parms[i].substring(0,pos);
      var val = parms[i].substring(pos+1);
      qsParm[key] = val;
      }
   }
}

qsParm['variframe'] = null;
qs();

  function loadIFrame(){
    //lees hier je variabele in om de url te bepalen en sla die op in bijv. variabele url
if (qsParm['variframe'])
var url = document.write (qsParm['variframe'] + '.html');
 
    var iframe = ( document.getElementById ) ? document.getElementById( "iframe" ) : ( document.all ) ? document.all["iframe"] : null;
    if( iframe ) 
      iframe.src = url;
    else
      alert( "Kan het iframe niet vinden :(" );
  };

    </script>   
        
        
        
    </head>

    <body  class="tekst" bgcolor="white">
        <table width="100%" height="300"  cellspacing="2" cellpadding="0" >
            <tr>
                <td width="422"><span onclick="loadIFrame();">iframe laden</span>
                    <iframe name="contentframe" <iframe id="iframe" src="about:blank" height="100%" width="422" border="0" frameborder="0" ></iframe>
                
                    
                <td width="31"></td>
                <td width="271">[img]"../../images/bedrijf.jpg"[/img]</td>
            </tr>

        </table>
        <p></p>
        
<!-- src=" javascript: if (qsParm['variframe']) document.write(qsParm['variframe'] + '.html');  " -->
    </body>

</html>

the things we fear most have already happened to us


  • wizzkizz
  • Registratie: April 2003
  • Laatst online: 19-12-2025

wizzkizz

smile...tomorrow will be worse

je moest nog een beetje beter aanpassen :p

code:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">

<html xmlns="http://www.w3.org/1999/xhtml">
    <head>
        <meta http-equiv="content-type" content="text/html;charset=utf-8" />
        <meta name="generator" content="Adobe GoLive" />
        <title>home</title>
        <link href="../../anylink.css" rel="stylesheet" type="text/css" media="all" />
        
        <script language="javascript">
        var qsParm = new Array();
            function qs() {
            var query = window.location.search.substring(1);
            var parms = query.split('&');
            for (var i=0; i<parms.length; i++) {
               var pos = parms[i].indexOf('=');
               if (pos > 0) {
                  var key = parms[i].substring(0,pos);
                  var val = parms[i].substring(pos+1);
                  qsParm[key] = val;
                  }
               }
            }
            
            qsParm['variframe'] = null;
            qs();
            
            function loadIFrame(){
                if ( qsParm['variframe'] ) {
                    var url = qsParm['variframe'] + '.html';
                } else {
                    alert( 'geen adres opgegeven om te laden in iframe' );
                    return false;
                };  
             
                var iframe = ( document.getElementById ) ? document.getElementById( "iframe" ) : ( document.all ) ? document.all["iframe"] : null;
                if( iframe ) 
                    iframe.contentWindow.location.href = url;
                else
                    alert( "Kan het iframe niet vinden :(" );
            };  
        </script>
    </head>
    <body  class="tekst" bgcolor="white">
        <table width="100%" height="300"  cellspacing="2" cellpadding="0" >
            <tr>
                <td width="422">
                    <span onclick="loadIFrame();">iframe laden</span>
                    <iframe name="contentframe" id="iframe" src="about:blank" height="100%" width="422" border="0" frameborder="0" ></iframe>
                </td>                    
                <td width="31"></td>
                <td width="271">[img]"../../images/bedrijf.jpg"[/img]</td>
            </tr>

        </table>
    </body>

</html>

nu werkt het wel (ok, klein foutje verholpen met contentWindow) en wordt de pagina die je opgeeft geladen als je op de tekst "iframe laden" klikt. als je dit nog in je script-gedeelte zet, wordt het direct al geladen:
code:
1
2
3
window.onload = function(){
    loadIFrame();
};

Make it idiot proof and someone will make a better idiot.
Real programmers don't document. If it was hard to write, it should be hard to understand.


  • 6bit
  • Registratie: Februari 2002
  • Laatst online: 19-06-2022
Dit werkt prima in firefox iig bedankt daarvoor, maar waarom werkt dit niet in IE???

the things we fear most have already happened to us


  • wizzkizz
  • Registratie: April 2003
  • Laatst online: 19-12-2025

wizzkizz

smile...tomorrow will be worse

6bit schreef op donderdag 03 november 2005 @ 11:04:
Dit werkt prima in firefox iig bedankt daarvoor, maar waarom werkt dit niet in IE???
ow, nie getest in IE :s

Make it idiot proof and someone will make a better idiot.
Real programmers don't document. If it was hard to write, it should be hard to understand.


  • 6bit
  • Registratie: Februari 2002
  • Laatst online: 19-06-2022
heb je enig idee, waarom het niet werkt in IE, daar blijft de iframe blank

the things we fear most have already happened to us


  • wizzkizz
  • Registratie: April 2003
  • Laatst online: 19-12-2025

wizzkizz

smile...tomorrow will be worse

6bit schreef op donderdag 03 november 2005 @ 11:18:
heb je enig idee, waarom het niet werkt in IE, daar blijft de iframe blank
moet je deze code eens gebruiken (vervang het stukje dat er veel op lijkt in de code die je had liggen):
code:
1
2
3
4
5
6
7
                var iframe = ( document.getElementById ) ? document.getElementById( "iframe" ) : ( document.all ) ? document.all["iframe"] : null;
                if( iframe ) 
                    alert( iframe.src );
                    iframe.src = url;
                    alert( iframe.src );
                else
                    alert( "Kan het iframe niet vinden :(" );

IE laadt het dus wel...lijkt dus meer op een weergaveprobleem van je iframe. Moet je eens proberen om er standaard een pagina in te laden (bijv. google). Zul je merken dat je die ook niet ziet ;)

[ Voor 20% gewijzigd door wizzkizz op 03-11-2005 11:34 ]

Make it idiot proof and someone will make a better idiot.
Real programmers don't document. If it was hard to write, it should be hard to understand.


  • wizzkizz
  • Registratie: April 2003
  • Laatst online: 19-12-2025

wizzkizz

smile...tomorrow will be worse

je probleem is dat IE geen iframe binnen een td slikt.
als je die erbuiten haalt, werkt het wel. Meteen een mooie gelegenheid om je pagina op te gaan maken met css :p

[edit]
hierover is hier in WG echt heeel erg veel te vinden, zoals bijvoorbeeld Webwereld: hoe het niet moet (en waarom) / markup

[ Voor 33% gewijzigd door wizzkizz op 03-11-2005 11:40 ]

Make it idiot proof and someone will make a better idiot.
Real programmers don't document. If it was hard to write, it should be hard to understand.


  • 6bit
  • Registratie: Februari 2002
  • Laatst online: 19-06-2022
Ik gebruik zo vaak een iframe binnen een td, dan is er ook niets aan de hand in IE

the things we fear most have already happened to us


  • wizzkizz
  • Registratie: April 2003
  • Laatst online: 19-12-2025

wizzkizz

smile...tomorrow will be worse

6bit schreef op donderdag 03 november 2005 @ 11:39:
Ik gebruik zo vaak een iframe binnen een td, dan is er ook niets aan de hand in IE
dat het in dit geval niet werkt, ligt aan je doctype. als je dat weghaalt werkt het wel in IE (maar dat is niet aan te raden ivm volgen van standaarden enzo)

Make it idiot proof and someone will make a better idiot.
Real programmers don't document. If it was hard to write, it should be hard to understand.

Pagina: 1