Check alle échte Black Friday-deals Ook zo moe van nepaanbiedingen? Wij laten alleen échte deals zien

[HTML|JS] Probleem met base url in IE7

Pagina: 1
Acties:

  • R0K13
  • Registratie: Januari 2003
  • Laatst online: 11-11 13:15
Hoi,

Ik zit met een probleem dat de base url niet wordt gezien door javascript in IE7. Echter het werkt wel in firefox 2 en safari (3.1).

Voorbeeld:
Stel ik heb de volgende mapjes met bestanden aangemaakt:

images/test.jpg
images/popup.htm
/index.htm

Nu bevat index.htm de volgende html code:

HTML:
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
<html>

<head>
<meta http-equiv="Content-Language" content="nl">
<meta http-equiv="Content-Type" content="text/html; charset=windows-1252">
<title>New Page 1</title>
<base href='http://localhost/test/images/'>
<script>

    function SYSTEM__Popup(url,width,height)    {
                var me_left = (screen.width - width)/2;
                var me_top = (screen.height - height) /2;
                window.open(url, "", "resizable=0,HEIGHT="+height+",WIDTH="+width+",LEFT="+me_left+",TOP="+me_top+"resizable=no,scrollbars=no,toolbar=no,status=no");
    }

</script>
</head>

<body>

<p><img border="0" src="test.jpg" width="340" height="483"></p>

<p><a href="javascript:SYSTEM__Popup('popup.htm',200,200);">testlinkje</a></p>

</body>

</html>


De afbeelding wordt in alle browsers goed weergegeven alleen de link werkt alleen in firefox en safari en niet in IE7. Dat komt omdat IE7 niet naar de base url kijkt terwijl alle andere browsers dit wel doen. Is er een manier dat ik dit kan oplossen? Kan ik bijvoorbeeld de base url nogmaals zetten met bijvoorbeeld javascript zodat IE7 hem wel ziet.

De base tag wordt straks automatisch door PHP in alle html bestanden gezet zodat ik niet hoef te letten op waar de php bestanden staan als ik de html include. Nu wordt dit alleen erg lastig als het in de ene browser wel werkt en in de andere weer niet.

  • TeeDee
  • Registratie: Februari 2001
  • Laatst online: 16:28

TeeDee

CQB 241

Even niet in de gelegenheid om het e.e.a te testen maar wat let je om 2x een base te zetten?
1 x in je <head> en 1 x als global JS variable? iets als
JavaScript:
1
var baseHREF = 'http://localhost/test/images/'; //dit kan je natuurlijk prima via PHP vullen
en deze altijd in je JS methods gebruiken?

Heart..pumps blood.Has nothing to do with emotion! Bored


  • R0K13
  • Registratie: Januari 2003
  • Laatst online: 11-11 13:15
Zo'n global variabele zou ook mijn uiterste red middel zijn maar ik heb ondertussen een website met tientallen javascripts en ik hoopte op een 'andere' oplossing. Ik vind het gewoon vreemd dat in IE7 de base tag gewoon niet doet wat hij moet doen namelijk alle relatieve links aanpassen. In andere browsers doet hij dat wel gewoon goed.

Kan ik met javascript niet op een of andere manier de base url instellen waardoor IE hem wel ziet? Dus bovenop de base tag nog een extra javascript dat ik aan alle pagina's toevoegt dat IE duidelijk maakt dat hij ook de base url op de javascript moet toepassen? Dat is makkelijker dan alle javascripts te gaan voorzien van een extra variabele

[ Voor 21% gewijzigd door R0K13 op 27-03-2008 11:44 ]


  • TeeDee
  • Registratie: Februari 2001
  • Laatst online: 16:28

TeeDee

CQB 241

Bij mij (weliswaar IE8 Beta in IE7 modus) krijg ik netjes een popup te zien hoor. Ik denk trouwens dat je in ieder geval een fatsoenlijk doctype neer moet zetten ipv alleen <html>

Er kunnen trouwens een hoop redenen zijn waarom dit fout gaat. Sinds IE7 is afaik de positie van <base> aangepast in de DOM. Ook zijn er een hele hoop resultaten op Google te vinden als je IE7 base javascript als keywords gebruikt.

@crisp: grappig, wilde jouw reactie 'when in rome' op ShaunInman.com aanhalen. Weet alleen niet zeker of je het om dit issue gaat.

[ Voor 52% gewijzigd door TeeDee op 27-03-2008 12:05 ]

Heart..pumps blood.Has nothing to do with emotion! Bored


  • crisp
  • Registratie: Februari 2000
  • Laatst online: 21:56

crisp

Devver

Pixelated

Doe het dan ook gewoon netjes:
HTML:
1
<a href="popup.htm" onclick="SYSTEM__Popup('popup.htm',200,200);return false">testlinkje</a>

Intentionally left blank


  • R0K13
  • Registratie: Januari 2003
  • Laatst online: 11-11 13:15
TeeDee schreef op donderdag 27 maart 2008 @ 11:58:
Bij mij (weliswaar IE8 Beta in IE7 modus) krijg ik netjes een popup te zien hoor. Ik denk trouwens dat je in ieder geval een fatsoenlijk doctype neer moet zetten ipv alleen <html>
Een doctype lost mijn probleem (helaas) niet op. Dit is ook alleen maar een voorbeeldje. Verder is juist wat jij opmerkt mijn probleem. Alleen IE7 negeert de base tag terwijl andere browsers waaronder ook IE6 het gewoon wel werkt. Daarom ben ik opzoek naar een snelle simpele oplossing voor een 'tijdelijk' probleem. Aangezien het blijkbaar wel weer goed werkt in IE8 wil ik niet te veel moeite hoeven doen om een IE7 probleem op te lossen.

Google heb ik al doorzocht. Daar staan geen oplossingen voor dit probleem zover ik heb kunnen vinden.

[ Voor 6% gewijzigd door R0K13 op 27-03-2008 12:04 ]


  • R0K13
  • Registratie: Januari 2003
  • Laatst online: 11-11 13:15
crisp schreef op donderdag 27 maart 2008 @ 12:02:
Doe het dan ook gewoon netjes:
HTML:
1
<a href="popup.htm" onclick="SYSTEM__Popup('popup.htm',200,200);return false">testlinkje</a>
:? Helpt niet echt. De popup gaat dan nog steeds fout..

[ Voor 12% gewijzigd door R0K13 op 27-03-2008 12:09 ]


  • BtM909
  • Registratie: Juni 2000
  • Niet online

BtM909

Watch out Guys...

R0K13 schreef op donderdag 27 maart 2008 @ 12:07:
[...]

:? Dit is toch absoluut niet wat ik wil. De popup gaat dan nog steeds fout en popup.htm wordt dan geladen in mijn parent window :|
Heb je het uberhaupt wel geprobeerd? En wat is de URL waar de popup naartoe gaat?

Ace of Base vs Charli XCX - All That She Boom Claps (RMT) | Clean Bandit vs Galantis - I'd Rather Be You (RMT)
You've moved up on my notch-list. You have 1 notch
I have a black belt in Kung Flu.


  • Joshua
  • Registratie: Juli 2005
  • Laatst online: 12-11 13:44
Zou het niet kunnen dat je altijd een naam moet meegeven aan het popup window?
In jou functie blijft deze blank..

  • Ruffian
  • Registratie: Augustus 2001
  • Laatst online: 16-11 14:17
Gebruik een conditional comment, want in IE 7 moet je de tag afsluiten.

<base href="..." /><!--[if IE]></base><[endif]-->

A life? Where can I download it??


  • crisp
  • Registratie: Februari 2000
  • Laatst online: 21:56

crisp

Devver

Pixelated

Ruffian schreef op donderdag 27 maart 2008 @ 12:24:
Gebruik een conditional comment, want in IE 7 moet je de tag afsluiten.

<base href="..." /><!--[if IE]></base><[endif]-->
onzin, dat is juist gefixed in IE7

Intentionally left blank


  • crisp
  • Registratie: Februari 2000
  • Laatst online: 21:56

crisp

Devver

Pixelated

R0K13 schreef op donderdag 27 maart 2008 @ 12:07:
[...]


:? Helpt niet echt. De popup gaat dan nog steeds fout..
my bad:
JavaScript:
1
<a href="popup.htm" onclick="SYSTEM__Popup(this.href,200,200);return false">testlinkje</a>

Intentionally left blank


  • R0K13
  • Registratie: Januari 2003
  • Laatst online: 11-11 13:15
crisp schreef op donderdag 27 maart 2008 @ 12:26:
[...]

my bad:
JavaScript:
1
<a href="popup.htm" onclick="SYSTEM__Popup(this.href,200,200);return false">testlinkje</a>
Dit lost het probleem inderdaad gedeeltelijk op. Echter bij document.location enzo werkt het nog steeds niet. Stel ik heb bijvoorbeeld deze functie:

JavaScript:
1
2
3
4
5
6
function goto(a) {
    if (a==1) 
            document.location = "popup.htm";
    else
            document.location = "popup2.htm";
}


HTML:
1
2
<a href="#" onclick="javascript:goto(1);return false;">testlinkje</a>
<a href="#" onclick="javascript:goto(0);return false;">testlinkje2</a>


Dan werkt dit helaas niet.

[ Voor 6% gewijzigd door R0K13 op 27-03-2008 12:43 ]


  • crisp
  • Registratie: Februari 2000
  • Laatst online: 21:56

crisp

Devver

Pixelated

Waarom zou je in hemelsnaam je links zo ontoegankelijk willen maken?

verder zie TeeDee; als je in javascript zelf URL's wilt verwerken met een base dan zal je die base ergens in een js variabele moeten opnemen en moeten prependen.

[ Voor 55% gewijzigd door crisp op 27-03-2008 12:48 ]

Intentionally left blank


  • TeeDee
  • Registratie: Februari 2001
  • Laatst online: 16:28

TeeDee

CQB 241

Nog even voor mijn beeldvorming: je wil toch juist een popup hebben? In IE7, Fx et al?

Heart..pumps blood.Has nothing to do with emotion! Bored


  • R0K13
  • Registratie: Januari 2003
  • Laatst online: 11-11 13:15
Nee het gaat helemaal niet om die popup. Dat is maar een voorbeeld. Het gaat erom dat mijn base url niet wordt herkend bij het uitvoeren van javascripts in IE7 terwijl hij wel wordt herkend in IE6, IE8 en firefox en Safari. Er wordt nu gezocht naar een oplossing van het popup probleem maar dat is slechts een voorbeeld. Daarom gaf ik ook nog een voorbeeld. Ik merk wel dat het geven van voorbeelden toch gevaarlijk is. De kern van de vraag wordt dan minder snel begrepen. Mijn fout.

Daarom is er niet een manier om de base url in te stellen via javascript? Dus zoiets als:

document.base.href = "http://localhost/testsystem";

Misschien dat IE7 hem dan wel ziet als ik hem ook zet via javascript. Het is maar een idee. Ik begrijp gewoon niet waarom de base url niet op alle relatieve links werkt. Ik bedoel op deze manier is de base url toch waardeloos want in de ene browser doet hij iets heel anders dan in de andere :?

[ Voor 31% gewijzigd door R0K13 op 27-03-2008 13:28 ]


Verwijderd

Het probleem is mij bekend van IE6.

De base wordt in IE6 niet meegenomen in Javascript. In HTML overigens wel. Ik neem aan dat dat in IE7 ook het geval is.

Mijn oplossing betreft een work around, namelijk het herschrijven van het Javascript. Maar ik snap dat dat geen oplossing is om op grote schaal toe te passen.
Pagina: 1