Avatar billede cronick Nybegynder
12. august 2007 - 20:45 Der er 24 kommentarer og
1 løsning

onclick giver irriterende fejl

Hej,

Jeg har denne tekstboks, med en tilhørende 'onclick' værdi tilføjet. Problemet er, at når jeg så klikker på den, kommer den med fejlen: "Objektet understøtter ikke denne metode eller egenskab"..

Boksen: <input type="text" style="width: 100%;" onClick="opdater(false);">

Min funktion ser således ud:

function opdater(mode)
{

// selv hvis der intet er her..

}

Det underlige er, at jeg nedenunder har en checkbox som ligeledes har en 'onclick' værdi tilknyttet: <input type="checkbox" onClick="opdater()">

Nogen der har en idé om, hvad der forårsager dette?

- På forhånd tak!
Avatar billede erikjacobsen Ekspert
12. august 2007 - 21:10 #1
Et link?
Avatar billede cronick Nybegynder
12. august 2007 - 21:59 #2
Tjaeh, du kan godt få et link, men så skal du først logge ind på siden.. Men du kan lige bruge et her:

http://shocknews.dk/ -> login -> tagwall

Brugernavn: Testeren
Kodeord:    test123

Inde i tagwallen er der et såkaldt auto-opdateringssystem.. Checkboksen kan du se i højre side, hvilket virker fint. Men tekstboksen, hvori man skriver sin besked, det er den der kommer med denne fejlmeddelse..
Avatar billede erikjacobsen Ekspert
12. august 2007 - 22:19 #3
Lyder for besværligt for mig lige nu.
Avatar billede madeindk Nybegynder
12. august 2007 - 22:43 #4
Du mener højst sandsynligt sådan her - en variabel du ønsker at videreføre skal altid videre føres ved at angive det i '' medmindre det er tal :)

<script type="text/javascript">
function opdater(command)
{
  alert(command)
}
</script>

<input type="checkbox" onclick="opdater('false');">
Avatar billede olebole Juniormester
13. august 2007 - 00:12 #5
<ole>

madeindk >> der skal da netop _ikke_ gåseøjne om en boolsk variabel!

cronick >> Det her er jo rent tidsspilde! Det første jeg møder, når jeg logger ind på den side, du beder os om at hjælpe dig med, er et papnakket anti-højrekliks-script ... hvad i alverden tænker du på ...?!?!??!!! Løs skidtet selv!

/mvh
</bole>
Avatar billede cronick Nybegynder
13. august 2007 - 00:36 #6
madeindk -> true og false er ikke variabler..

bolle -> hvis du nu følgte den ekstremt korte anvisning jeg har lavet, så du kommer hen i tagwallen, vil du opdage, at der ikke er noget anti-højrekliks-script..
Avatar billede olebole Juniormester
13. august 2007 - 01:06 #7
Jeg fulgte din anvisning nøje og kom til en side med anti-højreklik-script!
Avatar billede thesurfer Nybegynder
13. august 2007 - 02:19 #8
Jeg går ud fra, at det er denne kode:

<input type="text" name="tekst" onClick="java script: opdater(false);" style="width: 100%;">

som findes på adressen

http://shocknews.dk/community/community.php?vis=tagwall

Hvis man har JavaScript enabled, og går ind på adressen, bliver man smidt direkte til hovedsiden..


I kildekoden til siden, kan jeg overhovedet ikke se definitionen på funktionen..
Men jeg kan se, at du også kalder funktionen, uden parametere:

<input type="checkbox" id="check_opdate" onclick="java script: opdater();">


Og noget der er fuldstændigt FUBAR (langt ude) er, at du har 2 doctype-linier i koden.. :-)

Og endnu en ting:
Der skal ikke "java script:" i events.. dvs, fjern alle "java script:" fra onclick og ligende events..

Ret lige fejlene, og bed os om at kigge på det igen.
Avatar billede thesurfer Nybegynder
13. august 2007 - 02:20 #9
PS:
Det vil nok også være en god ide, at sætte en value-værdi på knappen, så man kan se den..

Eller det er måske ikke meningen at de nskal være synlig..?
Avatar billede thesurfer Nybegynder
13. august 2007 - 02:22 #10
PS:
Da jeg skrev 2 doctype-linier, mente jeg:

2x doctype plus 2x:

<html>
<head>
<title>ShocKnews # Shockerende nyheder!</title>
<script>
if(top.location == location)top.location='http://www.shocknews.dk/'
</script>
<link rel="stylesheet" type="text/css" href="http://shocknews.dk/temaer/6/css/style.css">
</head>

<body>

Hvilket er lidt for meget.. :-)
Avatar billede cronick Nybegynder
14. august 2007 - 12:17 #11
Beklager de ekstremt dårlige kragetæer der er at finde i kildekoden.. men prøv venligst at ignorer det med doctypen, html, head og body, da nødvendigt bliver hentet to gange :)

Jeg får lige rettet de åbenlyse fejl med parametre osv..
Avatar billede cronick Nybegynder
14. august 2007 - 12:46 #12
godt, det er så rettet nu.. siden sender en væk, hvis man ikke er inde i iframen, og dermed ikke gået ind på den vha. insider link.

det hjalp ikke rigtig noget, men for at I kan se selve funktionen nu, så har jeg placeret den i toppen (dvs. i toppen af det indehold der hentes inde i midten), i stedet for en reference gennem src..
Avatar billede thesurfer Nybegynder
14. august 2007 - 14:36 #13
Jeg får ingen fejlmeddelelser..

Får du stadig fejlmeddelelser..?
Avatar billede stone Forsker
14. august 2007 - 14:41 #14
Heller ingen fejl her ?
Avatar billede cronick Nybegynder
14. august 2007 - 17:51 #15
Har I prøvet at trykke på tekstboksen, man skriver i? :P

Jeg får stadig samme fejl..
Avatar billede thesurfer Nybegynder
14. august 2007 - 21:34 #16
Fejl må ligge her:

<script type="text/javascript">
<!--

var status = false;
var opdatering;

function opdater(mode)
{

if(mode == true || status == false && mode != false) {

  status = true;
  document.getElementById('check_opdate').checked = true;
  document.form_skriv.action = '?vis=tagwall&opdater=auto';
  document.form_skriv.opdater.onclick = "java script: window.location='?vis=tagwall&opdater=auto'; return false;";
  opdatering = window.setTimeout("window.location='?vis=tagwall&opdater=auto';", 10000);

}else{

  if(status == true) {
  clearTimeout(opdatering);
  }
  status = false;
  document.form_skriv.opdater.onclick = "java script: window.location='?vis=tagwall'; return false;";
  document.getElementById('check_opdate').checked = false;

}

}

-->
</script>


Jeg er næsten sikker på, at det er din onclick der er noget galt med.
For det første skal der IKKE stå JavaScript, i en JavaScript evt! :-)

Derfor: altid "java script:" i onclick, onmouseover, on...on..on..

For det andet, så det er ikke sådan man tilføjer handlinger til en event, så vidt jeg ved..

Man gør sådan her:

.onclick = function() { linie 1; linie2; osv; };

Prøv lige de rettelser.
Avatar billede thesurfer Nybegynder
14. august 2007 - 21:39 #17
Det er egentligt også lidt dum måde at gøre det på.. :-)
Altså det med din onclick..

Så vidt jeg kan se, laver du om på onclick, fordi du vil sende brugeren til en anden adresse.

Så kan du gøre sådan i stedet:

var status = false;
var opdatering;
url = "?vis=tagwall"; // ---------------------- SE DENNE HER!

function opdater(mode)
{

...
// din onclick erstattes med:
url = "?vis=tagwall&opdater=auto";
...
}

Din onclick på knappen vil altid være:

<input ... onclick="window.location.href=url" ...>
Avatar billede thesurfer Nybegynder
14. august 2007 - 21:40 #18
Rettelser til 14/08-2007 21:34:18:

Jeg er næsten sikker på, at det er din onclick der er noget galt med.
For det første skal der IKKE stå JavaScript, i en JavaScript event! :-)

Derfor: ALDRIG "java script:" i onclick, onmouseover, on...on..on..

For det andet, så det er ikke sådan man tilføjer handlinger til en event, så vidt jeg ved..

Man gør sådan her:

.onclick = function() { linie 1; linie2; osv; };

Prøv lige de rettelser.
Avatar billede cronick Nybegynder
16. august 2007 - 16:12 #19
Har rettet fejlen med java script: i onclick.. Ang det med event - jeg har haft denne funktion til at virke på et tidspunkt, før jeg rettede en lille ting. Kan bare ikke finde ud af hvad det er. Din løsning med <input ... onclick="window.location.href=url" ...> går ikke helt her, da jeg altså har nogle flere ting i funktionen, som den skal gøre.

Fejlen er stadig dér.. :/
Avatar billede thesurfer Nybegynder
16. august 2007 - 20:42 #20
Da var da utroligt.. :-)

Jeg testede koden i Opera, og fik denne fejl:

JavaScript - http://shocknews.dk/community/community.php?vis=tagwall
Event thread: click
Error:
name: TypeError
message: Statement on line 1: The Object does not implement [[Call]]
Backtrace:
  Line 1 of  script
    opdater(false);
  At unknown location
    [statement source code not available]


Fejlen sagde mig ikke noget.. men jeg blev ved med at teste..

Konklusion og løsningen:
Hvis din funktion hedder det samme som et element, får du fejlen "The Object does not implement [[Call]]".

Løsningen er, enten at skifte navnet på funktionen, fra "function opdater" til noget andet, eller skifte navnet på tekstboxen, fra name="opdater" til noget andet..

:-)

Så kommer du et skridt videre..

Jeg har dog ikke testet, om du kan bruge følgende:

document.form_skriv.opdater.onclick = "window.location='?vis=tagwall&opdater=auto'; return false;";

og

document.form_skriv.opdater.onclick = "window.location='?vis=tagwall'; return false;";

.. :-)
Avatar billede cronick Nybegynder
16. august 2007 - 21:50 #21
Tak, nu kommer fejlen ikke, og det virker umiddelbart. Bortset fra det med, at onclick skal skifte "window.location" .. det virker kun når den skal sætte den "til", og der kommer altså en opdater=auto på, men det ændres ikke ved "slå fra".. der fastholder den bare samme adrese - har du nogen idé om hvorfor?
Avatar billede thesurfer Nybegynder
16. august 2007 - 23:37 #22
Da mode altid er false, vil den kun afvikle denne del:

  if(status == true) {
  clearTimeout(opdatering);
  }
  status = false;
  document.form_skriv.opdater.onclick = "java script: window.location='?vis=tagwall'; return false;";
  document.getElementById('check_opdate').checked = false;


Og status er også altid false..

Du har ikke rettet onclick koden..

Den skal se sådan ud:

document.form_skriv.opdater.onclick = function() { window.location='?vis=tagwall&opdater=auto'; return false; };

og:

document.form_skriv.opdater.onclick = function() { window.location='?vis=tagwall'; return false; };
Avatar billede thesurfer Nybegynder
16. august 2007 - 23:39 #23
Du har også et kald til funktionen, uden parameter:


<input type="checkbox" id="check_opdate" onclick="opdaterSide();"> Automatisk opdatering (10 sek.)
Avatar billede cronick Nybegynder
17. august 2007 - 00:03 #24
Så virker det som det skal - mange tak.. :)

og du er velkommen til at smide et svar.. ;)
Avatar billede thesurfer Nybegynder
17. august 2007 - 10:05 #25
Svar smidt :-)
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