Toon posts:

Behavior (*.htc) bestanden extern niet mogelijk?

Pagina: 1
Acties:

Verwijderd

Topicstarter
Om zo weinig mogelijk code qua CSS in me pagina's te hebben wil ik graag gebruiken maken van een externe stylesheet.

Nu merk ik op dat een behavior welke ik gebruik pas werkt zodra deze hard in de pagina <style type="text/css"></style> wordt gedefinieerd?

Zodra ik de stylesheet extern ga aanroepen wordt de behavior totaal niet meegenomen? Nu is dit niet zo'n probleem qua updaten van CSS omdat ik deze gewoon serverside kan includen. Maar toch ben ik benieuwd of dit een bug is van de browser (in dit geval MSIE6) of dat het een vervelende bedoelde eigenschap is van het .htc verhaal.

Overigens heb ik nog eventjes de introductie nagelezen van HTC vanaf MSIE5 maar daar wordt met geen woord gerept over dit probleem.

http://msdn.microsoft.com/library/en-us/dnmind99/html/inside0499.asp?frame=true

  • cutter
  • Registratie: November 2000
  • Laatst online: 28-09-2025

cutter

Wannabe i7 fanboy

Je bedoelt dat je een .htc wil aanroepen in een .css file die .css roep vervolgens aan in je website.

Doet ie bij mij wel
code:
1
.clock {behavior:url(clock.htc)}

In mijn css file.

Mijn html file"
code:
1
2
3
4
5
6
7
8
9
10
11
12
13
<HTML>
<HEAD>
<TITLE>DHTML Clock</TITLE>
<LINK rel="stylesheet" type="text/css" href="clock.css">
</HEAD>

<BODY BGCOLOR="#ffffff">
<!--content start-->
<SPAN CLASS="clock" id="myclock">
</SPAN>
<!--content stop-->
</BODY>
</HTML>

http://www.zdnet.com/devhead/resources/standards/behaviors/scripts/001/download.zip
Hier staat de clock.htc....

Verwijderd

Topicstarter
Huh? .. ik pak eerst een kop koffie want ik snap hier niets van. :? (dat die het bij jou wel meeneemt)

Verwijderd

Topicstarter
Om even als voorbeeld te geven dit bedoel ik dus :)

Zo roep ik de stylesheet aan..
as usual
<link rel="stylesheet" type="text/css" href="skins/whistler/whistler.css">

En dit is het stukje CSS waar het over gaat.
.DynWindow_bar{behavior:url('behaviours/behaveurself.htc');background:url('skins/whistler/dynwindow_bar.gif');color:#ffffff;font:caption; cursor:default; width:722px; height:25px; padding:0; margin:0;}

Deze wordt natuurlijk netjes met class="DynWindow_bar" aangeroepen.

De andere properties worden wel meegenomen zoals backgournd.. het enige wat niet gepikt wordt is de behavior. Overigens paden zijn ook goed.

Verwijderd

Topicstarter
Na wat meer onderzoek blijkt dat andere HTC bestanden wel werken :? Conclusie is dus dat mijn HTC bestand niet werkt als deze extern worden aangeroepen. Dan denk ik weer .. [homeimprovement-style]HUH?[/homeimprovement-style]. Nu ga ik een hele lap code posten. Als iemand ook maar een idee heeft waar het aan kan liggen in mijn HTC schreeuw dan even. :P

Wat deze HTC doet is een scherm draggen zodat ik een chomeless window kan simuleren, zonder gebruik te maken van frames. Dus met een afbeelding in de pagina kan ik de hele window verslepen.

Deze behavior wordt toegekend aan het element wat de pagina mag slepen.
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
65
66
67
68
69
70
71
72
<public:component>
<public:attach event="onmousedown" onevent="startMove()" />
<script>

var _dx, _dy;

function getLeft() {
    return window.top.screenLeft - getInsets().left;
}

function getTop() {
    return window.top.screenTop - getInsets().top;
}

function getInsets() {
    // Store the old document position
    var oldScreenLeft = window.top.screenLeft;
    var oldScreenTop = window.top.screenTop;

    // if no previous inset calculated assume one
    if (window.top._insets == null)
        window.top._insets = {left: 5, top: 80};

    // move to a known position
    window.top.moveTo(oldScreenLeft - window.top._insets.left,
                  oldScreenTop - window.top._insets.top);
    
    // Measure the new document position
    var newScreenLeft = window.top.screenLeft;
    var newScreenTop = window.top.screenTop;
    
    // ... and store the insets result
    var res = {
        left:   newScreenLeft - oldScreenLeft + window.top._insets.left,
        top:    newScreenTop - oldScreenTop + window.top._insets.top
    };
    
    // move back the window to its original place
    window.top.moveTo(oldScreenLeft - res.left, oldScreenTop - res.top);
    
    // and backup the insets for next time
    window.top._insets = res;
    
    return res;
}

function startMove() {
    _dx = event.screenX - getLeft();
    _dy = event.screenY - getTop();
    element.attachEvent("onmousemove", doMove);
    element.attachEvent("onmouseup", endMove);
    element.attachEvent("onlosecapture", endMove);
    element.setCapture();

    event.cancelBubble = true;
}

function doMove() {
    window.top.moveTo(event.screenX - _dx, event.screenY - _dy);
}

function endMove() {
    element.detachEvent("onmousemove", doMove);
    element.detachEvent("onmouseup", endMove);
    element.detachEvent("onlosecapture", endMove);
    element.releaseCapture();
}



</script>
</public:component>

Verwijderd

Topicstarter
Laten we het zo stellen :) Wie mijn probleem kan oplossen kan een lekkere appelkruimeltaart verwachten, netjes bezorgd aan huis :)

  • oh,when?
  • Registratie: April 2000
  • Niet online

oh,when?

...

Op dinsdag 05 februari 2002 09:34 schreef Gordijnstok het volgende:
Laten we het zo stellen :) Wie mijn probleem kan oplossen kan een lekkere appelkruimeltaart verwachten, netjes bezorgd aan huis :)
pff das een goedkope oplossing. consulting kost namelijk al gauw zo'n 20 appeltaarten per uur ;)

"You're only as good, as what you did last week."


Verwijderd

Topicstarter
Op dinsdag 05 februari 2002 09:35 schreef oh,when? het volgende:

[..]

pff das een goedkope oplossing. consulting kost namelijk al gauw zo'n 20 appeltaarten per uur ;)
Ik ben maar een arme developer :P Heb medelij >:)

Verwijderd

Topicstarter
Helaas jongens de taart hou ik voor mezelf :9

Ik heb het HTC probleem opgelost.. is definitaly een bug. HTC bestanden worden vanaf de root van het aangeroepen document bekeken in niet vanaf de root van het CSS bestand.

Als ik dus in de CSS background aanroep doe ik dat vanaf de root van de CSS. Met HTC schijnt dat dus weer niet zo te zien, deze moeten weer aangeroepen worden vanaf de root van je document, waarin je het wilt gebruiken, en niet vanaf de CSS root.

  • oh,when?
  • Registratie: April 2000
  • Niet online

oh,when?

...

Op dinsdag 05 februari 2002 09:57 schreef Gordijnstok het volgende:
Helaas jongens de taart hou ik voor mezelf :9

Ik heb het HTC probleem opgelost.. is definitaly een bug. HTC bestanden worden vanaf de root van het aangeroepen document bekeken in niet vanaf de root van het CSS bestand.
Jij hebt zeker nooit voor Netscape 4.78 op de Mac developed. Daar moet je altijd vanuit de root van het document werken en niet vanaf het CSS bestand..

:)

"You're only as good, as what you did last week."


Verwijderd

Topicstarter
Op dinsdag 05 februari 2002 10:00 schreef oh,when? het volgende:

[..]

Jij hebt zeker nooit voor Netscape 4.78 op de Mac developed. Daar moet je altijd vanuit de root van het document werken en niet vanaf het CSS bestand..

:)
Voor Ns compatible gebruik ik gewoon de root van het document :) Alleen ik had MSIE wat te hoog ingeschat :)
Pagina: 1