Avatar billede benneharli Juniormester
02. maj 2007 - 00:20 Der er 40 kommentarer og
1 løsning

frameborder/framespacing onclick

Er det muligt at lave en hændelse ud fra om der bliver klikket på frameborder?

Altså, når man holder musen hen over mellemrummet mellem 2 rammer, og man får den der pil der gør at man resize, kan man så lave en hændelse ud fra om der bliver klikket?

/Benji
Avatar billede olebole Juniormester
02. maj 2007 - 12:50 #1
<ole>

Det burde vel ikke kunne lade sig gøre. Hvis det alligevel kan, skal det ske i selve frameset-dokumentet. Prøv noget à la:

<head>
<script type="text/JavaScript">
document.onclick = function(){
    alert("Der blev klikket udenfor frames");
}
</script>
</head>

/mvh
</bole>
Avatar billede mclemens Nybegynder
02. maj 2007 - 13:08 #2
Prøv istedet med:

<script type="text/JavaScript">
document.onmousedown = function(){
    alert("Der blev klikket udenfor frames");
}
</script>
Avatar billede mclemens Nybegynder
02. maj 2007 - 13:09 #3
(eller rettere prøv begge, men
min IE7 ville ikke med onclick)
Avatar billede benneharli Juniormester
02. maj 2007 - 18:35 #4
Hmm.. Er egentligt lidt det omvendte af det jeg gerne vil ;-)

Det der gerne skulle ske er at jeg skal resize en frame, når der bliver klikket på mellemrummet...

Men tænkte nok at det ikke var muligt.
Avatar billede mclemens Nybegynder
02. maj 2007 - 23:24 #5
Hvad virker ikke og hvorfor ?
Er det noget i denne stil du leger med ?



test.html

<html>
<head>
<title>Ny side 2</title>
</head>

<script type="text/JavaScript">
document.onmouseup = function(){
  document.getElementsByTagName("frameset")[0].setAttribute("cols","200,*");
}
</script>

<frameset cols="*,*">
  <frame name="venstre" src="1.html">
  <frame name="højre" src="1.html">
  <noframes>
  <body>

  <p>Denne Web-side bruger rammer, og din browser understøtter ikke rammer.</p>

  </body>
  </noframes>
</frameset>

</html>





1.html

<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
<html><head><meta http-equiv="content-type" content="text/html; charset=iso-8859-1"><title>Ingen titel</title>

</head><body>
abc
</body></html>


...

Undskyld hvis frameset ikke overholder standarderne,
jeg har ikke rodet med framesets i lang tid ...
Avatar billede benneharli Juniormester
02. maj 2007 - 23:58 #6
tje... både og

for det første vil jeg hellere have den til at hedde mousedown i stedet for mouseup, ellers kan man aldrig rigtigt resize fordi rammen altid vil hoppe tilbage når man slipper musen

når det så er sagt, så er problemet at når man en gang har resized, så hopper menuen tilbage eftersom der ikke er forskel på om man klikker på rammen for at lukke, eller om man klikker og holder musen nede for at resize...

men ja, ellers er det ligepræcis det jeg vil...

nogen videre idéer?
Avatar billede mclemens Nybegynder
03. maj 2007 - 00:04 #7
<script type="text/JavaScript">
chk=true;
document.onmousedown = function(){
  elm=document.getElementsByTagName("frameset")[0];
  if(chk)elm.setAttribute("cols","200,*");
  else elm.setAttribute("cols","*,*");
  chk=(!chk);
}
</script>
Avatar billede mclemens Nybegynder
03. maj 2007 - 00:05 #8
(rettede den til mousedown istedet og kastede en
variabel ind så der er to foskellige effekter ved klik)
- Formoder at det var nærmere det du ønskede ...
Avatar billede benneharli Juniormester
03. maj 2007 - 00:14 #9
mja.... sorry, men jeg er stadig ude efter en eller anden form for at kende forskel på om man klikker og trækker, eller bare klikker... :-(

lige nu hopper jeg "bare" frem og tilbage
Avatar billede benneharli Juniormester
03. maj 2007 - 00:24 #10
har udvidet den lidt

  document.getElementsByTagName("frameset")[0].frameSpacing=10;
Avatar billede benneharli Juniormester
03. maj 2007 - 00:25 #11
<script type="text/JavaScript">
chk=true;
document.onmousedown = function(){
  elm=document.getElementsByTagName("frameset")[0];
  if(chk) {
  elm.setAttribute("cols","200,*");
  document.getElementsByTagName("frameset")[0].frameBorder=1;
  document.getElementsByTagName("frameset")[0].frameSpacing=10;
  }
  else {
  elm.setAttribute("cols","*,*");
  document.getElementsByTagName("frameset")[0].frameBorder=0;
  document.getElementsByTagName("frameset")[0].frameSpacing=3;
  }
  chk=(!chk);
}
</script>
Avatar billede benneharli Juniormester
03. maj 2007 - 00:28 #12
kan ikke lige gennemskue den her, men det skulle være noget med at differenciere mellem almindeligt klik og dobbeltklik


import Tkinter
from Tkinter import *

root = Tk()
prompt='Click any button'
L = Label(root, text=prompt, width=len(prompt))
L.pack()


def do_mouse(eventname):
    def mouse_binding(event):
        msg = 'Mouse event %s' % eventname
        L.config(text=msg)
    L.bind_all('<%s>'%eventname, mouse_binding)

for i in range(1,4):
    do_mouse('Button-%s'%i)
    do_mouse('ButtonRelease-%s'%i)
    do_mouse('Double-Button-%s'%i)

root.mainloop()
Avatar billede benneharli Juniormester
03. maj 2007 - 00:32 #13
ville også være ok med højreklik
Avatar billede benneharli Juniormester
03. maj 2007 - 00:38 #14
nu begynder det at ligne noget

function click(e) {
  if (navigator.appName == 'Netscape'
          && e.which == 3) {
      elm=document.getElementsByTagName("frameset")[0];
      elm.setAttribute("cols","*,*");
      elm.frameBorder=0;
      elm.frameSpacing=3;
      return false;
      }
  else {
      if (navigator.appName == 'Microsoft Internet Explorer'
          && event.button==2) {
      elm=document.getElementsByTagName("frameset")[0];
      elm.setAttribute("cols","*,*");
      elm.frameBorder=0;
      elm.frameSpacing=3;
        return false;
        }
  return true;
}
}
document.onmousedown=click
</script>
Avatar billede benneharli Juniormester
03. maj 2007 - 00:46 #15
hmm... kan dblclick bruges til noget?
Avatar billede benneharli Juniormester
03. maj 2007 - 00:46 #16
onDblClick
Avatar billede benneharli Juniormester
03. maj 2007 - 00:52 #17
SÅ tror jeg jeg har den...

---------------------------

<script javascript>
onload = function () {
document.getElementsByTagName("frameset")[0].ondblclick = function () {
  elm=document.getElementsByTagName("frameset")[0];
  elm.setAttribute("cols","200,*");
  document.getElementsByTagName("frameset")[0].frameBorder=1;
  document.getElementsByTagName("frameset")[0].frameSpacing=10;
}
}
</script>
Avatar billede benneharli Juniormester
03. maj 2007 - 00:53 #18
smid lige et svar alligevel
Avatar billede benneharli Juniormester
03. maj 2007 - 01:25 #19
forresten... burde det her ikke virke??? Har to frameset, og det virker ikke i det ene..
Avatar billede benneharli Juniormester
03. maj 2007 - 01:25 #20
<html>
<head>
<title>TACPROJECTNAME</title>
<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1">
<META http-equiv="Expires" content="Fri, Jun 12 1981 08:20:00 GMT">
<META http-equiv="Pragma" content="no-cache">
<META http-equiv="Cache-Control" content="no-cache">
<LINK REL="SHORTCUT ICON" HREF="/www/index/favicon.ico">
<script javascript>
onload = function () {
    document.getElementById("tacframe").ondblclick = function() {
    alert('hola');
    }
}
</script>
<style type="text/css">
  body{
<!--
font-family: Verdana, Arial, Helvetica, sans-serif; font-size: 13px; color: #000099; background-color: #FFFFFF; text-align: center; vertical-align: top
-->
  }
</style>
</head>
<frameset rows="0,*" cols="*" framespacing="0" frameborder="NO" onLoad="window.defaultStatus='&copy;TAC AB 2006'" border="0">
  <frame name="topFrame" scrolling="NO" noresize src="/www/index/blank.html" >
  <frameset id="tacframe" cols="3,*" framespacing="0" rows="*" border="0" bordercolor="#BBD3F7" frameborder="NO">
    <frame name="leftFrame" scrolling="NO"  src="/www/index/Callmenu.html">
    <frame name="mainFrame" src="/www/index/body.html">
  </frameset>
</frameset>
<noframes>
<body bgcolor="#FFFFFF" topmargin="0" leftmargin="0" marginwidth="0" marginheight="0" link="0000CD" vlink="8B0000" alink="4169E1" >
</body>
</noframes>
</html>
Avatar billede benneharli Juniormester
03. maj 2007 - 01:57 #21
altså i teorien kan jag godt få det til

http://www.roswall.com/demos/framemenu/

men jeg har den "rigtige" applikation og der kan jeg ikke få det til at virke...

smid et svar her - åbner et nyt spørgsmål, eftersom det er fejlfinding i koden, og ikke i teorien
Avatar billede mclemens Nybegynder
03. maj 2007 - 08:25 #22
Ok, her er et svar.
- For at ramme den anden frameset skal du sige
elm2=document.getElementsByTagName("frameset")[1];
- Og så manipulere med elm2 for at rette styles / attributter.
... Hvordan du laver det med dobbelt klik, klik og mousedown
og drag kan jeg ikke lige gennemskue på stående fod ...
Avatar billede mclemens Nybegynder
03. maj 2007 - 08:26 #23
^ - Det er for tidligt :P
... Prøver lige svar igen.
Avatar billede mclemens Nybegynder
03. maj 2007 - 09:21 #24
Hmm, har ikke styr på det drag noget,
det nærmeste jeg kom var:



<html>
<head>
<title>Ny side 2</title>

<script type="text/JavaScript">
dblclickms=250;
chkit=0;
clicks=0;

document.onmousedown = function(){
  elm=document.getElementsByTagName("frameset")[1];
  chkit=elm.cols.split(",")[0];
}

document.onmouseup = function(){
  window.setTimeout("chkclick();",10);
}

function chkclick(){
  elm=document.getElementsByTagName("frameset")[1];
  if(chkit==elm.cols.split(",")[0]){
    clicks+=1;
    if(clicks==1)window.setTimeout("click();",dblclickms);
  }
}

function click(){
  elm=document.getElementsByTagName("frameset")[1];
  if(clicks==1)elm.cols="150,*";
  else elm.cols="3,*";
  clicks=0;
}
</script>
</head>

<frameset rows="0,*" frameborder="NO" onLoad="window.defaultStatus='&copy;TAC AB 2006'" border="0">
  <frame name="topFrame" src="1.html" >
  <frameset id="tacframe" cols="3,*" framespacing="1" border="1" frameborder="yes">
    <frame name="leftFrame" src="1.html">
    <frame name="mainFrame" src="1.html">
  </frameset>
</frameset>
<noframes>
<body bgcolor="#FFFFFF" topmargin="0" leftmargin="0" marginwidth="0" marginheight="0" link="0000CD" vlink="8B0000" alink="4169E1" >
</body>
</noframes>
</html>
Avatar billede benneharli Juniormester
03. maj 2007 - 10:04 #25
Fik det til til sidst... Det var fordi jeg havde en onload efter min onload function ;-)

http://www.roswall.com/demos/framemenu
http://www.roswall.com/www/index/indexTree.html
Avatar billede mclemens Nybegynder
03. maj 2007 - 10:11 #26
Super, og tak for point :o)
- P.s. Husk at gøre så borderen kan
klikkes på i FF, så man kan lukke igen.
Avatar billede benneharli Juniormester
03. maj 2007 - 10:11 #27
<html>
<head>
<title>TACPROJECTNAME</title>
<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1">
<META http-equiv="Expires" content="Fri, Jun 12 1981 08:20:00 GMT">
<META http-equiv="Pragma" content="no-cache">
<META http-equiv="Cache-Control" content="no-cache">
<LINK REL="SHORTCUT ICON" HREF="/www/index/favicon.ico">
<script javascript>
onload = function () {
    elm=document.getElementById('tacframe');
    document.getElementById('tacframe').ondblclick = function() {
        window.defaultStatus="TAC Xenta - Fullscreen";
        elm.cols='3,*';
        elm.frameBorder=0;
        elm.frameSpacing=0;
        self.leftFrame.location="Callmenu.html";
    }
}
</script>
<style type="text/css">
  body{
<!--
font-family: Verdana, Arial, Helvetica, sans-serif; font-size: 13px; color: #000099; background-color: #FFFFFF; text-align: center; vertical-align: top
-->
  }
</style>
</head>
<frameset rows="0,*" cols="*" framespacing="0" frameborder="NO" border="0">
  <frame name="topFrame" scrolling="NO" noresize src="/www/index/blank.html" >
  <frameset id="tacframe" cols="3,*" framespacing="0" rows="*" border="0" bordercolor="#BBD3F7" frameborder="NO">
    <frame name="leftFrame" scrolling="NO"  src="/www/index/Callmenu.html">
    <frame name="mainFrame" src="TACINTRO">
  </frameset>
</frameset>
<noframes>
<body bgcolor="#FFFFFF" topmargin="0" leftmargin="0" marginwidth="0" marginheight="0" link="0000CD" vlink="8B0000" alink="4169E1" >
</body>
</noframes>
</html>
Avatar billede benneharli Juniormester
03. maj 2007 - 10:13 #28
Naar jeg loader "Callmenu.html" til venstre, har den en funktion der der laver mellemrum mellem de 2 frames...

Lige en ting - bruger du FireFox?

Havde en snak med brormand i gaar (Mr.Mox) - Det virker i IE6 og 7, men ikke i FireFox - DoNo
Avatar billede mclemens Nybegynder
03. maj 2007 - 10:40 #29
"Naar jeg loader "Callmenu.html" til venstre, har den en funktion der der laver mellemrum mellem de 2 frames..." Nåh, okay ;o)

"Lige en ting - bruger du FireFox?"
- Hvis jeg surfer på sider jeg ikke kender: Ja
- Hvis jeg surfer på sider jeg ikke kender og
er nervøse for: Ja, uden javascript aktiveret.
- Hvis jeg surfer på sider jeg kender: Nej, så IE.
- Hvis jeg sidder og koder: Ja, så fanger man fejl.

http://www.fdim.dk/?vis=page&ID=73 ... IE udgør kun 90 %, så man
smider 10% af de besøgende ud, hvis det ikke virker i andre browsere.
... Højere % sats afhængig af hvem siden henvender sig til selvfølgelig.

"Havde en snak med brormand i gaar (Mr.Mox) - Det virker i IE6 og 7, men ikke i FireFox - DoNo"

Et skud i tågen:

<script type="text/javaScript">
document.ondblclick = function() {
  elm=document.getElementById('tacframe');
  window.defaultStatus="TAC Xenta - Fullscreen";
  elm.cols='3,*';
  elm.frameBorder=0;
  elm.frameSpacing=0;
  self.leftFrame.location="Callmenu.html";
}
</script>

onload - skal nok være window.onload
og så er din <script javascript> lidt skæv.
... Men ovenstående burde virke som din anden.
Avatar billede mclemens Nybegynder
03. maj 2007 - 10:41 #30
Ups: type="text/javaScript"
-> type="text/javascript"
Avatar billede benneharli Juniormester
03. maj 2007 - 15:58 #31
takker for asistancen ;-)
Avatar billede thesurfer Nybegynder
03. maj 2007 - 19:25 #32
Uden at starte en browserkrig, tvivler jeg stærkt på, at de 90% er "rene IE browsere", og ikke "rene IE browsere + andre browsere i IE-forklædning".. :-)

Mange amatører tester på user agent, for at se om browseren understøtter scriptet.. i stedet for at teste funktionaliteten.. og det får mange brugere til at identificere deres browser som en "IE"..

Det betyder at scriptet ikke længere er fremtidssikret, og skal opdateres/kontrolleres, hver gang en ny version af en browser bliver udgiver/frigivet/released.. for det kunne jo være, at den nye version af den "ikke kompatible browser", måske blev kompatibel med scriptet.. :-)

Nogen vil endda sabotere brugere med andre browser end IE.. Heriblandt kunne man tidligere finde Microsoft (dem bag IE :-) ), der direkte saboterede bl.a. browseren Opera (og muligvis også også), ved at benytte et andet stylesheet til ikke-IE browsere på msn.com, så layoutet blev skævt og forskudt..
Avatar billede thesurfer Nybegynder
03. maj 2007 - 19:27 #33
Rettelser:
"udgivet/frigivet/released"
"(og muligvis også andre)"
Avatar billede mclemens Nybegynder
03. maj 2007 - 20:16 #34
"Uden at ... browsere i IE-forklædning"
Lyder egentlig sandsynligt nok :o)

...

Og ja, det er tit problemet med at stole
blindt på hvad en browser kan og ikke kan. I
nogle tilfælde kan det virke som "diskrimination".
Synes også jeg har set et par msdn sider, hvor test
eksemplerne ikke er tilgængelige selvom f.eks. FF
understøttede den samme type kodning i eksemplet.
Avatar billede benneharli Juniormester
04. maj 2007 - 04:17 #35
Hmm... Der åbner sig lidt en ny verden for mig her ;-)

Normalt har jeg både Opera, Firefox og Netscape til at teste småting, og ja, der er som relt altid forskel... Men var ikke opmærksom på/klar over at der rent faktisk kunne være tale om en slags diskriminering???

Har altid været lidt af en Microsoft slave, eftersom det tit er det nemmeste - desværre :-(
Avatar billede benneharli Juniormester
04. maj 2007 - 04:18 #36
Også rettelser herfra:
som relt -> som regel
;-)
Avatar billede roenving Novice
04. maj 2007 - 07:30 #37
-- og så er det i dag specielt event-håndtering, der er meget forskellig browserne imellem, hvis ellers man sikrer at den grundlæggende kode er skrevet, så den virker !-)

-- nu har jeg ikke lige testet den udgave af opera, der kom ved sidste opdatering, men f.eks. check af hvilken museknap har aldrig været mulig i den, og dblclick har kun været til rådighed i IE ...
Avatar billede roenving Novice
04. maj 2007 - 07:40 #38
Hrm, de 90% er nok ik' li'e aktuelle: http://www.thecounter.com/stats/2007/April/browser.php

-- og præcis thecounter plejer at være det sted, hvor M$ virkelig kan prale, da den overvejende følger kommercielle sider, der traditionelt læses af relativt mange computer-mongoler ...

-- og prøv også at følge w3schools statistik, som jo klart er præget af de mange nørder, der kommer det sted: http://w3schools.com/browsers/browsers_stats.asp !-)
Avatar billede roenving Novice
04. maj 2007 - 07:46 #39
*lol*

-- http://www.thecounter.com/stats/2007/March/browser.php giver så et sjovt billede overfor april-tingen !o]
Avatar billede mclemens Nybegynder
04. maj 2007 - 12:57 #40
Benneharli
------------
Ja, jeg har også været en ms slave på et tidspunkt, men efterhånden
ændrede jeg holdning til det. Der skal jo være plads til flere, fordelen
ved at åbne op for andre browsere og tilpasse til dem, er at hvis folk
skifter over til de andre browsere, lægger det yderligere pres på IE for
at de skal forbedre deres browser, så de bibeholder deres position.
Med andre ord, konkurrence skaber forbedringer (forhåbentlig).

- Eksempel: Jeg måske det med at man ikke støtter den store så meget.
F.eks. brugte jeg hellere google end jubii, yahoo og msn tidligere,
men efterhånden som google næsten får "monopol" på søgninger er jeg
begyndt at bruge yahoo og msn igen. (Jeg har stadig et eller andet
imod jubii's prispolitik og deres derfor begrænsede søgeindeks.)



Roenving
----------
"Hrm, de 90% er nok ik' li'e aktuelle: April/browser.php"
- Tjah, den jeg linkede til var en fra fdim, men
som jeg også skrev varierer det sikkert afhængig
af hvem ens publikum typisk består af. Og sikkert
også afhængig af hvilket land man så sidder i.
- Hvilket du også viser ved de to link ;)

"-- March/browser.php giver så et sjovt billede overfor april-tingen !o]"
Ja, når man sammenligner ser nærmest ud til at de ikke har fanget om
netscape browsere var en netscape eller om det var en IE browser.
Avatar billede olebole Juniormester
08. maj 2007 - 12:28 #41
Hold-da-op, hvor var der meget tråd på den tridse!  ;oD

En anden fejlfaktor er, at der vandrer et hav af robotter rundt på nettet, der identificerer sig som IE ... ofte af 'skumle årsager'  ;o)
Avatar billede Ny bruger Nybegynder

Din løsning...

Tilladte BB-code-tags: [b]fed[/b] [i]kursiv[/i] [u]understreget[/u] Web- og emailadresser omdannes automatisk til links. Der sættes "nofollow" på alle links.

Loading billede Opret Preview
Kategori
Vi tilbyder markedets bedste kurser inden for webudvikling

Log ind eller opret profil

Hov!

For at kunne deltage på Computerworld Eksperten skal du være logget ind.

Det er heldigvis nemt at oprette en bruger: Det tager to minutter og du kan vælge at bruge enten e-mail, Facebook eller Google som login.

Du kan også logge ind via nedenstående tjenester