/ Forside/ Teknologi / Udvikling / ASP / Spørgsmål
Login
Glemt dit kodeord?
Brugernavn

Kodeord


Reklame
Top 10 brugere
ASP
#NavnPoint
smorch 9259
Harlekin 1866
molokyle 1040
Steffanst.. 758
gandalf 657
smilly 564
gibson 560
cumano 530
MouseKeep.. 480
10  Random 410
Problemer med div-float
Fra : Gizmo-man
Vist : 588 gange
50 point
Dato : 03-02-07 00:05

Jeg har et lidt underligt problem. Jeg henter noget data ud fra et notat-felt i access og køre det igennem en funktion for at tjekke for mulige kommandoer i teksten.

Jeg bruger selvfølgelig Replace, men det virker ikke. Den skubber bare teksten ned under div'en så det hele ser underligt ud. Men hvis jeg prøver at sætte den ind i HTML'en manuelt så virker det 100%, selv om der rent faktisk kommer til at stå samme sted...

Hvorfor gør den det ?

[[start]] skal give:
<div style="margin-bottom: 5px; float:right; clear: both; width: 250px; border: 1px solid red;">

[[slut]] skal give:
</div>

 
 
Kommentar
Fra : smorch


Dato : 03-02-07 08:43

Kode?

Kommentar
Fra : smorch


Dato : 03-02-07 08:45

Og hvorfor tjekker du ikke for kode INDEN teksten kommer IND i databasen?



sMorch

Kommentar
Fra : molokyle


Dato : 03-02-07 10:14

Øeh... jeg er ikke den sore ASP nørd, men bruges replace ikke til at erstatte et eller andet med noget nyt?
Citat
The ASP Replace() (if we want to be correct the Replace() function is a VBScript function) is a handy function, used to replace sub-strings found within a string.


Du vil indsætte. Skal det ikke ske med #include direktivet?
http://www.w3schools.com/asp/asp_incfiles.asp

Da kan du indsætte i en div.

..eller også må du bruge DOM's innerHTML egenskaben: http://msdn.microsoft.com/library/default.asp?url=/workshop/author/dhtml/reference/properties/innerHTML.asp

Her et eksempel på hvorledes man putter tegn i en <span> ..</span> inline container:
Kode
<html>
<head>
<title>innerHTML test</title>
</head>
<body bgcolor="#FFCC30">
<p><h1>Overskrift</h1></p>
<span id="tekst" style="position:absolute;top:50%"></span>
<p>fyld</p>
<p>mere fyld</p>
<input type="text" onKeyUp="document.getElementById('tekst').innerHTML = this.value;">
</body>
</html>


</MOLOKYLE>

Kommentar
Fra : molokyle


Dato : 03-02-07 10:32

Måske du kan bruge dynamisk indsættelse med et XMLHttpRequest alá AJAX løsningen:

http://www.w3schools.com/ajax/ajax_xmlhttprequest.asp

</MOLOKLYLE>



Kommentar
Fra : Gizmo-man


Dato : 03-02-07 11:03

Jeg tror lige jeg vil forklare det på en lidt anden måde. I min db har jeg feks en nyhed og i den nyhed er der en fakta-box (ligesom på TV2-nyhederne eller wikipedia's infobox).
Jeg bruger så min egen form for "kode" til at fortælle at det er en fakta-box, det kunne være [[start]] og [[slut]], og alt det der står i mellem de to tegn vil så komme til at stå i en højre-justeret boks.

text = Replace(text, "[[start]]", "<div style='margin-bottom: 5px; float:right; clear: both; width: 250px; border: 1px solid red;'>")

text = Replace(text, "[[slut]]", "</div>")

Den her boks virker (har testet uden for systemet), men når jeg laver den samme div ved hjælp af min replace så virker det ikke.

Kommentar
Fra : Gizmo-man


Dato : 03-02-07 11:41

Jeg har lagt en test side op her:

http://www.gizmo-hunter.dk/tdb/?pa=details&id=1

Her kan i se hvad det er den skal gøre. Problemet er så bare at hvis den samme kode havde været genereret i replace så ville den have skubbet teksten til venstre ned under den første info-box.

Kommentar
Fra : molokyle


Dato : 03-02-07 12:04

Som sagt er jeg bestemt ikke ekspert i serverside scripts som ASP, men som jeg har forstået det:

Hvis teksten (koden med DIV'erne) indsættes efter siden er loadet, kan du selvfølgelig ikke se noget, selvom koden står der, når du kigger i den resulterende kildekode. Det jo er indsat efter siden (<body> sektionen) er fortolket/renderet af browseren.

Din 'replacement' af koden skal da ske via DOM i din <head> .. </head> sektion, da denne læses og fortolkes før <body> .. </body> delen.

Dvs. siden renderes af browseren (..det brugeren får at se) og så erstattes strengen. Nu vil den kun kunne ses via en refresh/reload af siden, men så starter 'det hele' jo forfra og så er du ligevidt.

..men som sagt: Det er som jeg forestiller mig din konstruktion.

Hvis jeg har ret i min antagelse? Så bør din konstruktion virke hvis:

1.) Load siden fra serveren. (Almideligvis via. et link eller direkte fra browserens adresselinje).
2.) Vælg vis kilde på den resulterende side.
3.) Kopier indholdet (kildekoden) og gem det som test.html
4.) Kør test.html
5.) Får du nu den ønskede effekt?

</MOLOKYLE>

Accepteret svar
Fra : molokyle

Modtaget 50 point
Dato : 03-02-07 12:11

Øeh... har du prøvet med en anden browser end IE?

I IE7 er der allerede fundet en bug i CSS håndtering af clear og float's:

http://www.webdesign101.dk/css/floatcontainer.php

</MOLOKYLE>



Kommentar
Fra : Gizmo-man


Dato : 03-02-07 12:16

Replace er en funktion der udføres på server-siden og sender det færdige dokument (ren HTML) til klienten der så viser dokumentet. Dvs at klienten får aldrig Replace-komandoen at "se".

Jeg har prøvet at gemme den renereret tekst i en test.html, men det giver samme resultat som på siden.

Kommentar
Fra : Gizmo-man


Dato : 03-02-07 12:33

Hmm nu har jeg testet i Opera og der ser det ud til at virke. Hvad fa.... skal man så gøre ved det, når jeg primært bruger IE som browser !?

Kommentar
Fra : molokyle


Dato : 03-02-07 12:54

Brug De IE specifikke betingede kommentarer til udmaskning af koden.

Eks. :
Kode
<![if !IE]>
<html>
<head><title>Firefox, Opera, Netscape, Safari</title></head>
<body>
<p>Dette vises kun, hvis du ikke bruger IE</p>
<br/>
<p>Denne version af siden er ikke optimeret til IE</p>
</body>
</html>
<![endif]>

<!--[if IE]>
<html>
.
.
Hér står koden til din IE side og denne 'ser' Firefox, Opera mm. ikke.
.
.
</html>
<![endif]-->


Crossbrowser scripting er et helvede

http://msdn.microsoft.com/library/default.asp?url=/workshop/author/dhtml/overview/ccomment_ovw.asp

Læs evt. : http://www.positioniseverything.net/

</MOLOKYLE>

Kommentar
Fra : smorch


Dato : 03-02-07 20:38

Jeg vil stadig gerne se ASP koden.

sMorch

Godkendelse af svar
Fra : Gizmo-man


Dato : 04-02-07 00:10

Tak for svaret molokyle.

Du har følgende muligheder
Eftersom du ikke er logget ind i systemet, kan du ikke skrive et indlæg til dette spørgsmål.

Hvis du ikke allerede er registreret, kan du gratis blive medlem, ved at trykke på "Bliv medlem" ude i menuen.
Søg
Reklame
Statistik
Spørgsmål : 177414
Tips : 31962
Nyheder : 719565
Indlæg : 6407849
Brugere : 218876

Månedens bedste
Årets bedste
Sidste års bedste