[javascript] in subpagina's en frame

Pagina: 1
Acties:

  • DJ Chicken
  • Registratie: April 2000
  • Laatst online: 13-07-2025

DJ Chicken

De maat-schap-pij dat ben jij

Topicstarter
Ik zit met het volgende,

Ik heb kort terug een simpel html-frames pagina gemaakt. De default.html heeft 4 frames, top, bottom, left en main. In de left-frame staat mijn menu en die heeft als target de main-frame.

Nu heb ik een leuk javascriptje gevonden dat twee haarlijnen geeft bij je cursor(een croshair dus). Dit is mooi i.v.m. de positie van je cursor en onderlijning van bepaalde informatie die in de main-frame komt.

Er word dus via het menu(left-frame) en 100tal html-files geladen in de main-frame. Nu ben ik bezig om het voor elkaar te krijgen dat dat javascriptje altijd actief is in de main-frame, zodat ik niet in elke html-file die daarin word geladen de javascript code hoef te plaatsen(dit is niet te doen in 100+ files).

Is het uberhaupt mogelijk wat ik aan het proberen ben? Het is me tot nu toe nog niet gelukt.

ps. ik gebruikt frontpage2003

Dit is wat het javascriptje doet:


http://home.hccnet.nl/j.s.drenthe/test/



En dit is de code van het javascriptje:


<head>

<style>
<!--
#leftright, #topdown{
position:absolute;
left:0;
top:0;
width:1px;
height:1px;
layer-background-color:black;
background-color:black;
z-index:100;
font-size:1px;
}
-->
</style>

</head>


<body>

<div id="leftright" style="width:expression(document.body.clientWidth-2)"></div>
<div id="topdown" style="height:expression(document.body.clientHeight-2)"></div>

<script language="JavaScript1.2">
<!--

if (document.all&&!window.print){
leftright.style.width=document.body.clientWidth-2
topdown.style.height=document.body.clientHeight-2
}
else if (document.layers){
document.leftright.clip.width=window.innerWidth
document.leftright.clip.height=1
document.topdown.clip.width=1
document.topdown.clip.height=window.innerHeight
}


function followmouse1(){
//move cross engine for IE 4+
leftright.style.pixelTop=document.body.scrollTop+event.clientY+1
topdown.style.pixelTop=document.body.scrollTop
if (event.clientX<document.body.clientWidth-2)
topdown.style.pixelLeft=document.body.scrollLeft+event.clientX+1
else
topdown.style.pixelLeft=document.body.clientWidth-2
}

function followmouse2(e){
//move cross engine for NS 4+
document.leftright.top=e.y+1
document.topdown.top=pageYOffset
document.topdown.left=e.x+1
}

if (document.all)
document.onmousemove=followmouse1
else if (document.layers){
window.captureEvents(Event.MOUSEMOVE)
window.onmousemove=followmouse2
}

function regenerate(){
window.location.reload()
}
function regenerate2(){
setTimeout("window.onresize=regenerate",400)
}
if ((document.all&&!window.print)||document.layers)
//if the user is using IE 4 or NS 4, both NOT IE 5+
window.onload=regenerate2

//-->
</script>

</body>

[ Voor 19% gewijzigd door DJ Chicken op 30-03-2005 15:40 ]

aahh durka durka durka


  • Rowanov
  • Registratie: Februari 2004
  • Niet online

Rowanov

Kop eens wat anders...

Je kan het javascript in een frame zetten wat niet herladen wordt en vanuit dat frame het andere frame aanspreken. Toch lijkt het me sterk dat je hiet niets over hebt kunnen vinden met de search.

  • DJ Chicken
  • Registratie: April 2000
  • Laatst online: 13-07-2025

DJ Chicken

De maat-schap-pij dat ben jij

Topicstarter
Rowanov schreef op woensdag 30 maart 2005 @ 11:39:
Je kan het javascript in een frame zetten wat niet herladen wordt en vanuit dat frame het andere frame aanspreken. Toch lijkt het me sterk dat je hiet niets over hebt kunnen vinden met de search.
Wat ik vond was iets van iframes. In Line Frames heette dat oid, ook in frontpage2003 iframes verder in gezocht maar bleef steken :|

aahh durka durka durka


  • T-MOB
  • Registratie: Maart 2001
  • Laatst online: 22:41
Waarom moeilijk doen met javascript? Je kunt toch ook gewoon de CSS property cursor: crosshair gebruiken.

Regeren is vooruitschuiven


  • DJ Chicken
  • Registratie: April 2000
  • Laatst online: 13-07-2025

DJ Chicken

De maat-schap-pij dat ben jij

Topicstarter
T-MOB schreef op woensdag 30 maart 2005 @ 12:44:
Waarom moeilijk doen met javascript? Je kunt toch ook gewoon de CSS property cursor: crosshair gebruiken.
Jaja maar das heel wat anders dan dat stukje code van daarboven ;)

Plak het maar eens voor de grap in een basic html pagina tussen de aangegeven tags zoals hierboven, dan zie je wat het script doet, en dus dat het heel wat anders is dan de cursor zelf 8).

Je krijgt 2 haarlijnen in heel het frame, dus daarom mijn vraag/probleem om het actief te krijgen in bepaald frame.

[ Voor 13% gewijzigd door DJ Chicken op 30-03-2005 15:30 ]

aahh durka durka durka


  • Rowanov
  • Registratie: Februari 2004
  • Niet online

Rowanov

Kop eens wat anders...

Ok, ik vat het nu niet meer, heb je een online voorbeeld?

  • DJ Chicken
  • Registratie: April 2000
  • Laatst online: 13-07-2025

DJ Chicken

De maat-schap-pij dat ben jij

Topicstarter
Rowanov schreef op woensdag 30 maart 2005 @ 15:32:
Ok, ik vat het nu niet meer, heb je een online voorbeeld?
Yup ik heb het ff online gezet op deze link:



http://home.hccnet.nl/j.s.drenthe/test/



Dit javascriptje wil ik dus in 1 frame actiesfhebben zoals in mijn post aangegeven.

aahh durka durka durka


  • TXC
  • Registratie: Oktober 2002
  • Laatst online: 24-12-2025

TXC

Hmmz mijn vurige vos vreet het niet eens :(

Maar kun je niet via een progje dit script in elke html toevoegen, bijvoorbeeld direct na de body tag? Zoiets zou je kunnen programmeren als je dat kunt, en anders zijn er vast programma's voor.

[ Voor 72% gewijzigd door TXC op 30-03-2005 15:43 ]


  • DJ Chicken
  • Registratie: April 2000
  • Laatst online: 13-07-2025

DJ Chicken

De maat-schap-pij dat ben jij

Topicstarter
TXC schreef op woensdag 30 maart 2005 @ 15:41:
Hmmz mijn vurige vos vreet het niet eens :(

Maar kun je niet via een progje dit script in elke html toevoegen, bijvoorbeeld direct na de body tag? Zoiets zou je kunnen programmeren als je dat kunt, en anders zijn er vast programma's voor.
Sjah maar de bedoeling is dat dat juist niet hoeft om het apart aan elke html bestand toe te voegen, das in dit geval onhandig. }:O

[ Voor 7% gewijzigd door DJ Chicken op 30-03-2005 15:57 ]

aahh durka durka durka


  • T-MOB
  • Registratie: Maart 2001
  • Laatst online: 22:41
DJ Chicken schreef op woensdag 30 maart 2005 @ 15:47:
[...]
Sjah maar de bedoeling is dat dat juist niet hoeft om het apart aan elke html bestand toe te voegen, das in dit geval onhandig. }:O
Je hoeft ook niet per se het hele script in elke pagina toe te voegen. Je kunt het script in een apart filetje zetten en dat in je pagina aanroepen:
code:
1
<script type="text/javascript" src="losse_file.js"></script>


Met een beetje texteditor heb je dit zo gepiept door gewoon in één batch in alle pagina's </head> te vervangen door <scripttag></head>. Het voordeel van de code in een losse file is gelijk dat je het script gemakkelijk in alle pagina's kunt updaten... Dit script is namelijk best wel 1999.

Regeren is vooruitschuiven


  • DJ Chicken
  • Registratie: April 2000
  • Laatst online: 13-07-2025

DJ Chicken

De maat-schap-pij dat ben jij

Topicstarter
T-MOB schreef op woensdag 30 maart 2005 @ 17:05:
[...]


Je hoeft ook niet per se het hele script in elke pagina toe te voegen. Je kunt het script in een apart filetje zetten en dat in je pagina aanroepen:
code:
1
<script type="text/javascript" src="losse_file.js"></script>


Met een beetje texteditor heb je dit zo gepiept door gewoon in één batch in alle pagina's </head> te vervangen door <scripttag></head>. Het voordeel van de code in een losse file is gelijk dat je het script gemakkelijk in alle pagina's kunt updaten... Dit script is namelijk best wel 1999.
1999 :?

ben niet zo thuis is die leet taal oid :X

aahh durka durka durka


  • T-MOB
  • Registratie: Maart 2001
  • Laatst online: 22:41
DJ Chicken schreef op woensdag 30 maart 2005 @ 17:31:
[...]
1999 :?
ben niet zo thuis is die leet taal oid :X
offtopic:
Dat is geen leet taal, ik bedoelde gewoon dat het ouderwets javascript is ;) Maar goed, ik verveel me dus ik ben aan het prutsen aan een "moderne versie" die het ook doet in Firefox enzo. Vind het namelijk wel een grappig effectje :)

Regeren is vooruitschuiven


  • T-MOB
  • Registratie: Maart 2001
  • Laatst online: 22:41
Een scriptje dat het ook in andere browsers dan IE doet kun je hier vinden.

Is het nog gelukt om de pagina's aan te passen?

Regeren is vooruitschuiven


  • DJ Chicken
  • Registratie: April 2000
  • Laatst online: 13-07-2025

DJ Chicken

De maat-schap-pij dat ben jij

Topicstarter
T-MOB schreef op woensdag 30 maart 2005 @ 21:23:
Een scriptje dat het ook in andere browsers dan IE doet kun je hier vinden.

Is het nog gelukt om de pagina's aan te passen?
Ey handig het nieuwe javascript.

Heb het nog niet geprobeerd met batch bestand. Ik zoek nog naar de andere oplossing zonder 100+ files te editen via batchbestand.(ik zou ook nie psiest weten hoe te batchen :) )

[ Voor 3% gewijzigd door DJ Chicken op 30-03-2005 22:18 ]

aahh durka durka durka


  • T-MOB
  • Registratie: Maart 2001
  • Laatst online: 22:41
DJ Chicken schreef op woensdag 30 maart 2005 @ 22:01:
[...]
Heb het nog niet geprobeerd met batch bestand. Ik zoek nog naar de andere oplossing zonder 100+ files te editen via batchbestand.(ik zou ook nie psiest weten hoe te batchen :) )
Een oplossing die leunt op het scripten door frames heen zou ik niet nastreven. Ten eerste omdat je er een aantal minder mooie trucs tegenaan moet gooien om het aan het werk te krijgen. Als het niet anders kan dan moet het maar ranzig, maar in dit geval is er gewoon een alternatief.
Ten tweede hoort het script gewoon bij de inhoud van de pagina die je in het frame opent. Dáár staat de inhoud waarvoor de speciale crosshair nodig is, het script zou dan logischerwijs ook door die pagina moeten worden aangeroepen. Dit is ook wel zo aardig tegenover gebruikers die (om wat voor reden dan ook) de pagina niet in de frameset bekijken maar in een los venster.

Daarnaast: en masse bestanden veranderen is vrij simpel. Je zorgt eerst dat je een texteditor hebt die dat kan, de meeste geanvanceerde text-editors hebben de mogelijkheid. Mijn favoriete editor is EditPlus. Op de website kun je een 30-dagen trial downloaden.

Dan open je alle bestanden die je wil aanpassen (selecteren en in de editor slepen is voldoende).

In het menu /search/ kies je de optie /replace/. Het volgende schermpje zal verschijnen:
Afbeeldingslocatie: http://erik.kabel.utwente.nl/got/epreplace
In het "find what" veld zet je een string waarvan je zeker weet dat ie maar 1 keer voorkomt in elk bestand. Ik zou zeggen "</head>".
In het "replace with" veld zet je de script tag. Als we ervan uitgaan dat je het script hebt opgeslagen met als bestandsnaam "crosshair.js" in dezelfde map als de bestanden wordt dat het volgende:
code:
1
<script type="text/javascript" src="crosshair.js"></script>\n</head>

In het venster vink je het vakje voor "Regular expression" aan, dit zorgt ervoor dat de "\n" in bovenstaande wordt omgezet in een line-break. De sluittag </head> zal dus netjes op een nieuwe regel worden teruggezet :). Tot slot zetten we de radio-button onder het schermpje op "All open files" om te zorgen dat alle bestanden worden veranderd en voila: met een druk op de [Replace All] knop zijn al je bestanden aangepast...
Met dit (--> Afbeeldingslocatie: http://erik.kabel.utwente.nl/got/EPsaveAll) knopje sla je vervolgens al je bestanden in 1x op, dat scheelt honderden keren klikken ;)

Regeren is vooruitschuiven


  • DJ Chicken
  • Registratie: April 2000
  • Laatst online: 13-07-2025

DJ Chicken

De maat-schap-pij dat ben jij

Topicstarter
Idd op die manier hierboven is het het handigst, maar het gaat nog steeds niet op, voor als ik een prive sitejuh bouw ga ik het onthouden :) , maar nu laat ik het crosshair er helaas maar uit dan ;(

btw nog vielen dank voor het nieuwe crosshair.

aahh durka durka durka

Pagina: 1