Vinnaren i pepparkakshustävlingen!
2017-05-18, 05:13
  #1
Avstängd
Kod:
if (document.getElementById("nånting").innerHTML >= 0) {
    
window.open("http://www.example.com""_blank"); // will open new tab on window.onload


Tänk på att jag inte kan koda!
Tar emot olika tips, koder och länkar.

Denna script executas endast när jag besöker sidan.
Tanken är att den ska executas varje x sekund.

Hjälp?

Får inte reloada sidan endast denna script.
Har testat med meta refresh och lite andra refresh scripts som laddar om sidan. De funkade men de förstör andra funtioner jag behöver.
__________________
Senast redigerad av B5iK4D3Li5K 2017-05-18 kl. 05:56.
Citera
2017-05-18, 06:31
  #2
Avstängd
Googlat som fan men mina kunskaper är jätte låga.

Testade detta men det biter inte.

Kod:
<script>
$(function(){
setInterval(oneSecondFunction1000);
});

function 
oneSecondFunction() {
if (
document.getElementById("connected").innerHTML >= 0) {
    
window.open("http://www.example.com""_blank"); // will open new tab on window.onload
}
</script> 
Citera
2017-05-18, 08:55
  #3
Medlem
..FAN..s avatar
Kod:
<script>

window.onload = function(){

if (document.getElementById("connected").innerHTML >= 0) { 

	setInterval(function(){
		 window.open("http://www.example.com", "_blank");
	}, 1000);

}
	 
}

</script>
Citera
2017-05-18, 09:53
  #4
Avstängd
Citat:
Ursprungligen postat av ..FAN..
Kod:
<script>

window.onload = function(){

if (document.getElementById("connected").innerHTML >= 0) { 

	setInterval(function(){
		 window.open("http://www.example.com", "_blank");
	}, 1000);

}
	 
}

</script>

Redigerat.
Funkade inte riktigt som det skulle.

Problem 1.
Executas bara när window.onload sker dvs när jag laddar om sidan.
innerHTML >= 0 då executas det men endast om jag laddar om sidan.
innerHTML >= 1 då ska den inte executas men ändå så fortsätter den executas.

Ni kan se live skiten här (posta in länken direkt här är ni snälla.)
Live: http://bit.ly/1MHItEH
För att se riktiga adressen om ni inte vågar clicka bit.ly länken: http://www.trueurl.net/

Kikat lite på din kod och testat lite med ingen kunskap alls.
Det jag har räknat ut är att denna kod körs varje sekund.
Kod:
window.open("http://www.example.com""_blank"); 
Men denna kör bara när sidan laddas eller laddas om. Eller?
Kod:
if (document.getElementById("connected").innerHTML >= 0

Din kod är på rätt väg men jag tror dena funktion saknas.
Alltså att denna kod körs också varje sekund vilket det kanske gör men jag får inte ihop det.
Kod:
if (document.getElementById("connected").innerHTML >= 0

Det är nånting som endast körs en gång iaf.

Det jag försöker lyckas med är detta.
Kod:
//Öppna new tab när inner html är x
//Göra ingenting när inner html är y 
//Utan att refresha huvud sidan - endast denna funktionen
if (document.getElementById("nånting").innerHTML >= 0) { 
    
window.open("http://www.example.com""_blank"); // will open new tab on window.onload 

__________________
Senast redigerad av B5iK4D3Li5K 2017-05-18 kl. 10:35.
Citera
2017-05-18, 11:08
  #5
Avstängd
Tror jag hittade problemet.

Kod:
window.onload = function 

Alltså din kod körs endast när en laddning av sidan sker.
Därför känner den inte igen live ändringar som sker på sidan.
Men på min sida så ändras detta manuellt / live.
Kod:
innerHTML >= 
innerHTML 
>= 
innerHTML 
>= 
osv
... 

Söker något annat.

Typ något sådant.
Kod:
allways = function 
Citera
2017-05-18, 12:12
  #6
Avstängd
Kanske fejka win.onload varje x sekund på något sätt?
Citera
2017-05-18, 21:18
  #7
Medlem
Povels avatar
Jag tror att problemet är vad som egentligen finns i elementets innerHTML. Det är inte säkert att jämförelsen med ett numerisk värde så som du gör det fungerar som du tror (innerHTML är text).

Om det är helt säkert att elementet innehåller endast ett numeriskt värde så är det inte konstigare än så här:

Kod:
<script>
  var 
= function (idlimitintervalpopup) {
    var 
elem document.getElementById(id);
    
elem.innerHTML limit window.open(popup"_blank") : setTimeout(pinterval);
  }.
bind(null"ditt-element-id"51000"popup.html");
  
p();
</script> 
- lägges precis innan stängningen av body (</body>), inget tjafs med onload behövs.

JavaScript försöker "hjälpa" så att man kan få skriva uttryck som t.ex. `if ("6" > 5)` eller till och med `if (" 6 " > 5)`, men om det finns vissa andra tecken i strängen så fungerar inte jämförelsen lika bra. Testet `"6f" > 5` och liknande kommer alltid att vara falskt.

Kolla vad som egentligen finns i strängen som kommer från elementets innerHTML.

/p
Citera
2017-05-18, 22:15
  #8
Avstängd
Citat:
Ursprungligen postat av Povel
Kod:
<script>
  var 
= function (idlimitintervalpopup) {
    var 
elem document.getElementById(id);
    
elem.innerHTML limit window.open(popup"_blank") : setTimeout(pinterval);
  }.
bind(null"ditt-element-id"51000"popup.html");
  
p();
</script> 

Kolla vad som egentligen finns i strängen som kommer från elementets innerHTML.
Din kod verkar inte funka.

limit ? ska jag ersätta ? med en siffra?
5, 1000, "popup.html" 5 vad är det? 1000 är millisekunder förstår jag. popup.html kan jag skriva in länk där eller ska popup.html ligga i samma map som koden bara?

Här är hela koden inklusive din.
https://pastebin.com/RT4wtfQU

Om jag endast kör med denna kod så fungerar det men bara när sidan refreshas / laddas om. Inte live - när inner html ändras.
Kod:
if (document.getElementById("connected").innerHTML >= 1) {
    
window.open("http://www.example.com""_blank"); // will open new tab on window.onload


Alltså inner .innerHTML >= 1 ändras lite då och då.
Search +1 stop -1
Ni kan se exempel här: http://bit.ly/1MHItEH decryptera länken här http://www.trueurl.net/
__________________
Senast redigerad av B5iK4D3Li5K 2017-05-18 kl. 22:26.
Citera
2017-05-19, 01:28
  #9
Medlem
Povels avatar
Citat:
Ursprungligen postat av B5iK4D3Li5K
Din kod verkar inte funka.

limit ? ska jag ersätta ? med en siffra?
5, 1000, "popup.html" 5 vad är det? 1000 är millisekunder förstår jag. popup.html kan jag skriva in länk där eller ska popup.html ligga i samma map som koden bara?

Här är hela koden inklusive din.
https://pastebin.com/RT4wtfQU

Om jag endast kör med denna kod så fungerar det men bara när sidan refreshas / laddas om. Inte live - när inner html ändras.
Kod:
if (document.getElementById("connected").innerHTML >= 1) {
    
window.open("http://www.example.com""_blank"); // will open new tab on window.onload


Alltså inner .innerHTML >= 1 ändras lite då och då.
Search +1 stop -1
Ni kan se exempel här: http://bit.ly/1MHItEH decryptera länken här http://www.trueurl.net/


Det tycks fungera utmärkt, bara man lagar det där vansinniga koden som försöker använda en textfil som databas
Båda tycks agera som (jag tror att) du förväntar dig, bara elementets innehåll uppdateras som det är meningen. Men den ena, som sagt, bara som ett one-shot.

Du insåg ungefär att värdena "ditt-element-id", 5, 1000, "popup.html" som listades motsvarar parametrarna id, limit, interval, popup (DOM-id, gräns du vill jämföra "siffran" med, intervallet (i ms.) för att göra jämförelsen och ev. agera, samt (sökväg till) fil som till slut skall öppnas. Sökvägen kan alltså vara en absolut url eller vad som helst, men om den bara är ett namn så förväntas denligga jämte filen varifrån öppnandet sker. Ändra värdena efter eget gottfinnande...

Citat:
ska jag ersätta ? med en siffra?
Nej, frågetecknet är en del av javascriptkoden.

Själva metoden (som fungerar) är att:
  • i en funktion (iställer för i bara löst liggande kod) göra checken
  • om villkoret uppfyllt - öppna fönster eller whatever
  • annars - schemalägg försök om 1000 ms
Exakt hur funktionen jag skrev ser ut inget man behöver förstå sig på. Den kan du skriva om så att du själv är bekväm med den. Men metoden att ha dit test i en funktion, och köra den tills den blir nöjd är lösningen på ditt problem.

/p
Citera
2017-05-19, 02:56
  #10
Avstängd
Funkar ju inte säger jag.

Bara gå in här och testa: http://bit.ly/1MHItEH decryptera länken här http://www.trueurl.net

Jo jag vill gärna förstå hur koder funkar. Kan inte koda men förstår jag funktionen så vet jag vad som kan vara felet och vad koden gör och inte gör.

Din kod vad är det den känner igen? Den ska känna igen en siffra tex: 2
Ser inte vad din kod känner igen.
Kod:
<script
  var 
= function (idlimitintervalpopup) { 
    var 
elem document.getElementById(id); 
    
elem.innerHTML limit window.open(popup"_blank") : setTimeout(pinterval); 
  }.
bind(null"ditt-element-id"51000"popup.html"); 
  
p(); 
</script> 

Denna kod fungerar som sagt men endast när sidan laddas.
Kod:
if (document.getElementById("connected").innerHTML >= 1) { 
    
window.open("http://www.example.com""_blank"); // will open new tab on window.onload 


Hur kan man skippa window.onload? Hur kan man göra så att denna kod alltid körs och inte är beroende av window.onload?


Angående detta så fick jag hjälp i en annan tråd som löste ett problem men istället fick jag ett annat det är det problemet jag försöker lösa i denna tråd.
Citat:
bara man lagar det där vansinniga koden som försöker använda en textfil som databas
__________________
Senast redigerad av B5iK4D3Li5K 2017-05-19 kl. 03:18.
Citera
2017-05-22, 16:56
  #11
Medlem
Kolla på detta exempel och se om du får det att fungera.

https://codepen.io/anon/pen/dWwpPK?editors=1010
Citera

Stöd Flashback

Flashback finansieras genom donationer från våra medlemmar och besökare. Det är med hjälp av dig vi kan fortsätta erbjuda en fri samhällsdebatt. Tack för ditt stöd!

Stöd Flashback