Js értelmetlen viselkedése.
2020-08-12T23:14:40+02:00
2020-08-14T15:09:16+02:00
2022-08-11T21:25:30+02:00
Alopex
Sziasztok!
Van egy gondom amit nem tudok hova tenni, és ilyent soha nem láttam még:

Html:

<button class="btn btn1" onclick="timeline()">ez egy gomb</button>
 JS:

function timeline() { window.location.href = 'honlapnak a linkje'; }
ez magában mikor megírtam tökéletesen működött. Viszont egy ideig nem szerkesztettem semmit, és arra lettünk figyelmesek, hogy nem működik. Valahogyan elromlott magától, úgy hogy senki nem piszkálgatta. De a még érdekesebb, hogy se az egyik ezközeimen se, se bármely barátom ezközén nem működött. kivéve úgy működött, mikor Geforce Now-on játszottam, és ott teszteltem le. tehát valami olyasmi van hogy magyarországi felhasználó nem használhatja, csak az aki máshonnan van? vagy változott volna valami kódolás a js file-kban, avagy a glitch.com-on (azon fut a próbahonlapom).
Ja és ha nem timeline-t írok hanem egy másik meglévőre, akkor az működik, de néhány ilyen szó le van tiltva valamiért...

Előre is köszönöm a választ, ha találtok erre rá választ egyáltalán! :D
Mutasd a teljes hozzászólást!
Bár nem túl szép oda rakni a scriptet, ettől függetlenül a böngésző ezt lekezeli.

Azért működhetett eddig, mert a böngészők még valószínűleg nem támogatták az új Web Animations dolgokat, ahol ugyanis bekerült egy document.timeline változó.

Amikor a onclickben te csak simán azt mondod, hogy timeline() akkor eddig a böngésző a window.timeline()-ra gondolt, most már a document.timeline()-ra ami tényleg nem egy függvényt.

Írd át a meghívást window.timeline()-ra vagy nevezd át a függvényt.
Mutasd a teljes hozzászólást!
Csatolt állomány

  • A "nem működik" információtartalma nulla. Mi van a konzolban amikor a hiba jelentkezik? 99,9% hogy van már ilyen nevű függvényed deklarálva máshol.
    Mutasd a teljes hozzászólást!
  • a console:
    (index):19 Uncaught TypeError: timeline is not a function
        at HTMLButtonElement.onclick ((index):19)

    megnéztem jobban a két file-t, és nincsen ilyen nevű függvényem, és mind a két helyen jól van írva.
    bár akkor se magyarázná meg azt hogy jó volt, csak hirtelen rosszul lett, azt is csak a magyaroknak.
    Mutasd a teljes hozzászólást!
  • A hibaüzenet szerint a nincs ilyen nevű függvényed. Mutasd meg hogy van beágyazva a HTML-be az a JS kód? De lehet egyszerűbb ha megmutatod magát az oldalt...
    Mutasd a teljes hozzászólást!
  • Megkaptam privát üzenetben a linket. A hiba itt van:

    </body> <script src="https://*****/js/text.js"></script> </html>

    Scrtipt hivatkozást nem tehetsz a HTML struktúrában oda, ahol most van. Tedd a </body> elé, vagy a <head> tag-ek közé. Ezek nagyon-nagyon alapok ám, nem lehet össze-vissza pakolászni...
    Mutasd a teljes hozzászólást!
  • ez magában mikor megírtam tökéletesen működött. Viszont egy ideig nem szerkesztettem semmit, és arra lettünk figyelmesek, hogy nem működik. Valahogyan elromlott magától, úgy hogy senki nem piszkálgatta.

    Akkor már csak az a kérdés, hogy eddig, hogy működött?
    Mutasd a teljes hozzászólást!
  • Előfordul hogy szabványtalan dolgokat is elfogad 1-1 böngésző, aztán a frissítése után már nem. Továbbra is az a gyanúm hogy nem "magától" romlott el.
    Mutasd a teljes hozzászólást!
  • Bocsánat, az is hiba, de valójában nem az okozza a hibát, hanem ez:

    function főoldal() { window.location.href = 'https://*****'; } function timeline() { window.location.href = 'https://*****/timeline.html'; }
    Ékezet mit keres funkció nevében?
    Mutasd a teljes hozzászólást!
  • Bár nem túl szép oda rakni a scriptet, ettől függetlenül a böngésző ezt lekezeli.

    Azért működhetett eddig, mert a böngészők még valószínűleg nem támogatták az új Web Animations dolgokat, ahol ugyanis bekerült egy document.timeline változó.

    Amikor a onclickben te csak simán azt mondod, hogy timeline() akkor eddig a böngésző a window.timeline()-ra gondolt, most már a document.timeline()-ra ami tényleg nem egy függvényt.

    Írd át a meghívást window.timeline()-ra vagy nevezd át a függvényt.
    Mutasd a teljes hozzászólást!
    Csatolt állomány
  • Ez tuti nem probléma, a legtöbb reaktos buildben a body-ban van a script, a #root div mögött, így nem kell megvárni a window.onload-ot.

    ./index.js

    import React from 'react'; import {render} form 'react-dom'; import FooApp from './FooApp'; render(<FooApp />, getElementById('root'));

    ./index.html

    <!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8"> <meta name="viewport" content="width=device-width, initial-scale=1.0"> <title>foo app</title> </head> <body> <div id="root"></div> <script src="./index.js"></script> </body> </html>

    ... és kb. ennyi html kód kell az egész react projektben, és ehhez később nem nagyon kell hozzányúlni, ettől a ponttól már minden js-ből jön.
    Mutasd a teljes hozzászólást!
  • Hali!

    Ez tuti nem probléma, a legtöbb reaktos buildben a body-ban van a script…

    Valószínűleg nem figyelmesen nézted, de itt – DJ_Tacee posztjában – nem body-ban van a script, hanem azon kívül, a body lezáró tag-je után.

    Mutasd a teljes hozzászólást!
  • Ékezet mit keres funkció nevében?


    Habár már évek óta úgy írok hogy ékezetek nélkül, és szünet nélkül, néha becsusszannak ilyen hibák. de így is működik, bár kijavítottam mert nem nagyon szeretem így.

    És hogy hogyan került a body mögé a script mindenhol arról halvány gőzőm sincsen, talán ez a glitch.com-nak a hülyesége mert van időnként amikor észreveszek olyanokat, amik nem voltak. utánajártam, elméletben bugos az a cucc, amivel lehet auto szépíteni a kódot. Hamarosan úgy lessz egy szervergépem, és akkor nem lessznek ilyen gondjaim.

    Kijavítottam a hibákat mostmár működik, Köszönöm a segítségket! :D
    Mutasd a teljes hozzászólást!
Tetszett amit olvastál? Szeretnél a jövőben is értesülni a hasonló érdekességekről?
abcd