Toon posts:

[JS] If exist functie

Pagina: 1
Acties:

Onderwerpen


Acties:
  • 0 Henk 'm!

Verwijderd

Topicstarter
Hi,

Ik ben niet helemaal thuis in het javascript gebeuren, maar het lijkt me dat mijn wens middels een simpel scriptje in vervulling kan worden gebracht.

Ik zal het kort toelichten. Op bepaalde tijdstippen wordt er automatisch een script op een webpagina geschoten vanuit een externe website. Zodra dit blok aanwezig is, moet hieronder een ander beeld worden geladen. Daar wil ik graag een script voor gebruiken.

Laten we zeggen dat het externe script een afbeelding meeschiet. Afbeelding.png
Hoe verwerk ik in een script, dat als afbeelding.png op de website bestaat dat ik anderbeeld.jpeg wil tonen en anders niks.

Ik heb al enig vooronderzoek gedaan, maar dit heeft betrekking op het weergeven van bepaalde teksten. Nogmaals, ik ben niet heel erg thuis in javascript. Dus sorry als deze vraag een beetje dom over komt :D . Dit heb ik gevonden:

<script type="text/javascript">
//If afbeelding is available display image file.
//Otherwise display a 1x1 pixel.

if (<img src="afbeelding.png">)
{
document.write("Good morning!");
}
else
{
document.write("Good day!");
}
</script>

Acties:
  • 0 Henk 'm!

Verwijderd

Hmm, snap niet helemaal wat je wilt, maar als je wilt weten of een image reeds preloaded is, bestaat dit scriptje:

http://snippets.dzone.com/posts/show/89

En ik hoop serieus dat deze regel:

code:
1
if (<img src="afbeelding.png">)


ter illustratie is van wat je wilt en niet iets wat je daadwerkelijk in je JS script ging proppen...

Acties:
  • 0 Henk 'm!

  • moozzuzz
  • Registratie: Januari 2005
  • Niet online
Je zal meer toelichting moeten geven ivm het "schieten" van scripts, afbeeldingen en blokken. Met name hoe dit technisch gebeurt want wellicht verstaat er nu iedereen iets anders voor.

Acties:
  • 0 Henk 'm!

  • djexplo
  • Registratie: Oktober 2000
  • Laatst online: 07-07 15:40
JavaScript:
1
2
3
4
5
var  id = document.getElementById("plaatje");
if (id != null)
{
// Plaatje bestaat
}

[ Voor 11% gewijzigd door djexplo op 21-01-2011 13:49 ]

'if it looks like a duck, walks like a duck and quacks like a duck it's probably a duck'


Acties:
  • 0 Henk 'm!

Verwijderd

Persoonlijjk zou ik een controle als deze gebruiken:

JavaScript:
1
2
3
4
5
6
var img = document.getElementById('plaatje');
if(typeof img != "undefined" && img.src != "undefined") {
    alert('Afbeelding bestaat');
} else {
    alert('Afbeelding bestaat niet');
}


In het ergste geval, mits je een PHP programmeur bent, kun je gebruik maken van phpjs.org.

Acties:
  • 0 Henk 'm!

  • S_tef
  • Registratie: December 2004
  • Laatst online: 26-09 14:30
indexOf?

Acties:
  • 0 Henk 'm!

  • pieturp
  • Registratie: April 2004
  • Laatst online: 25-09 15:21

pieturp

gaffa!

*gedraag je of reageer niet*

[ Voor 100% gewijzigd door MueR op 31-01-2011 17:13 ]

... en etcetera en zo


Acties:
  • 0 Henk 'm!

  • _Thanatos_
  • Registratie: Januari 2001
  • Laatst online: 05-09 14:39

_Thanatos_

Ja, en kaal

if(typeof img != "undefined" && img.src != "undefined") {...
Dit is genoeg:
JavaScript:
1
if (img) {...

;)

日本!🎌


Acties:
  • 0 Henk 'm!

Verwijderd

_Thanatos_ schreef op zondag 30 januari 2011 @ 20:23:
[...]

Dit is genoeg:
JavaScript:
1
if (img) {...

;)
Maar als de variabel img niet bestaat (dus undefined) dan krijg je een script error en dat willen we natuurlijk niet ;)

Acties:
  • 0 Henk 'm!

  • _Thanatos_
  • Registratie: Januari 2001
  • Laatst online: 05-09 14:39

_Thanatos_

Ja, en kaal

Bijna: als een variabele niet gedeclareerd is, krijg je een script error. Als een variabele wel gedeclareerd is maar geen waarde heeft, zal de if-constructie false returnen, omdat undefined (naast 0, null, NaN en "") falsey waarden zijn.

日本!🎌


Acties:
  • 0 Henk 'm!

  • R4gnax
  • Registratie: Maart 2009
  • Laatst online: 06-09 17:51
Verwijderd schreef op vrijdag 21 januari 2011 @ 13:23:
Op bepaalde tijdstippen wordt er automatisch een script op een webpagina geschoten vanuit een externe website. Zodra dit blok aanwezig is, moet hieronder een ander beeld worden geladen. Daar wil ik graag een script voor gebruiken.
Even opnieuw aangehaald voor de duidelijkheid. Het lijkt er namelijk op dat hier nog wat simpel overheen gestapt wordt. Hoe moeten we 'op bepaalde tijdstippen' opvatten? Een automatisch roulerende banner die z'n werk doet wanneer de pagina al geladen is?

Je zit in dat geval namelijk al snel te kijken naar een polling oplossing. Dat houdt in dat je om de zoveel tijd moet controleren of een bepaald element aanwezig is, als het aanwezig is moet controleren of het extra element reeds toegevoegd is, en zo niet: het extra element toevoegen.

Wat meer informatie omtrend het exacte probleem wat hier opgelost moet worden zou wat dat betreft handig zijn.

Acties:
  • 0 Henk 'm!

  • darkdeathrip
  • Registratie: Maart 2006
  • Laatst online: 09-09 11:56
Heej ik zou voor weinig kennis zoals ik altijd doe jquery aanraden.
Dit script hieronder zorgt ervoor dat als plaatje.png bestaat,
dan laat hij plaatjenieuw.jpg zien. (kant en klaar)
Ik hoop dat dit is wat je wou, heb je vragen dan hoor ik het graag!
code:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
<html>
<head>
    <title>js example tweakers 2</title>
    <script src="http://ajax.googleapis.com/ajax/libs/jquery/1.4.2/jquery.min.js"></script>
    <script>!window.jQuery && document.write('<script src="http://code.jquery.com/jquery-1.4.2.min.js"><\/script>');</script>
    <script type="text/javascript"> 
    $(document).ready(function() {
        //als plaatje.png bestaat in ALLE PLAATJES op de site
        $("img").attr("src", "plaatje.png").load(function() {
            $(this).attr("src","plaatjenieuw.jpg");
        });
    });
    </script>
</head>
<body>
    <img src="plaatje.jpg" />
</body>
</html>

Acties:
  • 0 Henk 'm!

  • RobIII
  • Registratie: December 2001
  • Niet online

RobIII

Admin Devschuur®

^ Romeinse Ⅲ ja!

(overleden)
Je bedoelt het goed, maar we hanteren hier een beetje het:
Give a man a fish and feed him for a day. Teach a man how to fish and feed him for a lifetime.
beleid. Alles op een zilveren presenteerblaadje aanreiken is dan ook niet helemaal de bedoeling ;)

There are only two hard problems in distributed systems: 2. Exactly-once delivery 1. Guaranteed order of messages 2. Exactly-once delivery.

Je eigen tweaker.me redirect

Over mij


Acties:
  • 0 Henk 'm!

  • MueR
  • Registratie: Januari 2004
  • Laatst online: 26-09 19:48

MueR

Admin Tweakers Discord

is niet lief

darkdeathrip schreef op dinsdag 01 februari 2011 @ 00:32:
Heej ik zou voor weinig kennis zoals ik altijd doe jquery aanraden.
Ja, dan leren ze nooit zelf javascript kloppen.

Anyone who gets in between me and my morning coffee should be insecure.


Acties:
  • 0 Henk 'm!

  • darkdeathrip
  • Registratie: Maart 2006
  • Laatst online: 09-09 11:56
Je moet toch ergens beginnen he.
En hier geld weer, topic maker heeft zijn antwoord.
Hierbij staak ik de discussie.

[ Voor 59% gewijzigd door darkdeathrip op 01-02-2011 14:53 ]


Acties:
  • 0 Henk 'm!

  • NMe
  • Registratie: Februari 2004
  • Laatst online: 09-09 13:58

NMe

Quia Ego Sic Dico.

darkdeathrip schreef op dinsdag 01 februari 2011 @ 14:41:
Je moet toch ergens beginnen he.
En hier geld weer, topic maker heeft zijn antwoord.
Hierbij staak ik de discussie.
Het antwoord dat iemand hebben wil is niet altijd het antwoord dat hij nodig heeft. En beginnen doe je bij het begin, niet bij jQuery. Je rent toch ook niet eerste de marathon voordat je kan kruipen?

'E's fighting in there!' he stuttered, grabbing the captain's arm.
'All by himself?' said the captain.
'No, with everyone!' shouted Nobby, hopping from one foot to the other.

Pagina: 1