Benutzer Online |
Momentan sind 11 Benutzer online » 0 Mitglieder » 9 Gäste Bing, Google
|
Aktive Themen |
Express Post Abfrage
Forum: Javascript
Letzter Beitrag: Florian86
Vor 11 Stunden
» Antworten: 4
» Ansichten: 340
|
Fenster aktualisieren
Forum: Javascript
Letzter Beitrag: Oly
Gestern, 06:31
» Antworten: 2
» Ansichten: 199
|
Chart.js - year independe...
Forum: Javascript
Letzter Beitrag: ludwigmller
Gestern, 05:24
» Antworten: 0
» Ansichten: 16
|
Return meiner Variable
Forum: Javascript
Letzter Beitrag: derDoc
21.03.2023, 16:44
» Antworten: 0
» Ansichten: 101
|
addEventListener wird nic...
Forum: Javascript
Letzter Beitrag: Oly
21.03.2023, 14:47
» Antworten: 3
» Ansichten: 218
|
Web-Widget erstellen, das...
Forum: Javascript
Letzter Beitrag: rzscout
20.03.2023, 19:05
» Antworten: 3
» Ansichten: 270
|
html parser elemente form...
Forum: Php
Letzter Beitrag: BastiBln
20.03.2023, 11:47
» Antworten: 5
» Ansichten: 688
|
Funktion mit Array
Forum: Javascript
Letzter Beitrag: rzscout
16.03.2023, 17:30
» Antworten: 11
» Ansichten: 570
|
HILFEEE bekomme kein Wert...
Forum: Javascript
Letzter Beitrag: Oly
16.03.2023, 10:25
» Antworten: 0
» Ansichten: 47
|
Canvas Download-Button
Forum: Javascript
Letzter Beitrag: admin
14.03.2023, 20:43
» Antworten: 1
» Ansichten: 116
|
|
|
Chart.js - year independent x-axis |
Geschrieben von: ludwigmller - Gestern, 05:24 - Forum: Javascript
- Keine Antworten
|
 |
I have data for several years, that should be plotted in a line graph. Data example:
date season cum_sum
2021-12-23 2022 11
2022-01-01 2022 19
2022-01-04 2022 20
2022-01-05 2022 40
2022-03-01 2022 43
2022-12-01 2023 3
2022-12-02 2023 7
2022-12-10 2023 11
2022-12-23 2023 17
2023-01-01 2023 19
2023-01-05 2023 30
As you see in the attached image, the x-axis is not chronological. Days of the season 2023, that were not part of the season 2022, are plotted at the end of the x-axis. E.g.: data_2022 = ["01-03", 5], ["01-10", 15] data_2023 = ["01-03", 10], ["01-05",20] --> 01/05 is plotted on the end of the x-axis.
![[Bild: 20230322042517ad21787bf2f822c510187e82dae7288f.png]](https://javascript-forum.de/uploads/userpics/20230322042517ad21787bf2f822c510187e82dae7288f.png)
Here my current JS-Code:
var ctx = document.getElementById('myChart').getContext('2d');
var chart = new Chart(ctx, {
type: 'line',
data: {
datasets: [{
label: 'Season 2022',
data: data_2022,
borderColor: 'blue',
fill: false
}, {
label: 'Season 2023',
data: data_2023,
borderColor: 'red',
fill: false
}]
},
options: {
scales: {
xAxes: [{
type: 'time',
time: {
unit: 'day',
unitStepSize: 1,
displayFormats: {
'day': 'MMM DD'
},
tooltipFormat: 'MM-DD',
}
}],
yAxes: [{
ticks: {
beginAtZero: true
}
}]
}
}
});
|
|
|
Return meiner Variable |
Geschrieben von: derDoc - 21.03.2023, 16:44 - Forum: Javascript
- Keine Antworten
|
 |
Hallo zusammen, ich bin JS Anfänger und versuche mich seit ein paar Tagen an einem Problem.
Google bringt mir auch nix wirkliches an hilfe. Villt. könnte mir einer helfen bzw. einen Denkanstoß geben.
function GetGEOAdress(Strasse,HNR,Ort){
HNR = HNR.trim();
HNR = HNR.replace(" ", "")
Ort = Ort.trim();
Ort = Ort.replace(" ", "%20")
Strasse = Strasse.trim();
Strasse = Strasse.replace(" ", "%20")
var geo;
URL = "https://nominatim.openstreetmap.org/search?format=json&limit=1&addressdetails=1&q="+Ort+"%20"+HNR+"%20"+Strasse+"";
$.getJSON(URL, function(data) {
$.each( data, function( key, val ) {
let lat = val.lat;
let lon = val.lon;
let boundingbox = val.boundingbox;
let display_name = val.display_name;
let plz = val.address.postcode;
let street = val.address.pedestrian;
let hnr = val.address.house_number;
geo = lat+":"+lon;
});
});
return geo;
}
Ich versuche mit diesem Script die GeoDaten über mein Return auszugeben.
Um es zu Testen folgendes nutzen:
GetGEOAdress('Aachener Str.','999','Köln');
Ich verzweifle gerade.....
|
|
|
addEventListener wird nicht erstellt |
Geschrieben von: Oly - 17.03.2023, 21:43 - Forum: Javascript
- Antworten (3)
|
 |
Hallo zusammen,
habe eine Schleife das zu einer Live Ansicht zwei neue Einträge hinzufügt. Klappt alles soweit gut, doch es wird immer nur ein EventListener zum ersten Eintrag erstellt. Der zweite nicht mehr, sieht vielleicht jemand den Fehler im Code?
Im Storage sind genau 2 Werte gespeichert und wie gesagt, beim zweiten Wert wird kein Listener erzeugt.
for(let i=0;i<zahl;i++)
{
chrome.storage.local.get(allKeys[i], function(result)
{
ZirAuftrag=allKeys[i];
meinText= result[ZirAuftrag];
document.getElementById("meine_Erinnerungen").innerHTML+=`
<input type='button' id=`+allKeys[i]+` value='X' style="float:right"</input>
<a href="/task/`+allKeys[i]+`/show" class="list-group-item text-success" target="_blank" style="margin-right:24px">
<strong>`+allKeys[i]+`</strong>
<small class="text-muted pull-right" data-toggle="tooltip" title="" data-original-title="">13.03.2023</small>
<br>
<small>`+meinText+`</small>
</a>`;
document.getElementById(allKeys[i]).addEventListener('click',function(){alert("Auftrag: "+allKeys[i]);});
});
}
|
|
|
html parser elemente formatieren |
Geschrieben von: BastiBln - 17.03.2023, 18:43 - Forum: Php
- Antworten (5)
|
 |
Moin,
ich benötige mal euren Rat. Ich habe mit der simple_html_dom lib einen Parser für Rezepte von chefkoch.de gebaut.
Um die Zutaten für meinen Bedarf zu verwenden benötige ich eine bestimmte Formatierung. Ich probiere schon eine ganze Weile rum, aber es funktioniert nicht so richtig.
Hier der Code:
include('simple_html_dom.php');
$html = file_get_html($_POST["recipe_url"]);
// ***************** parse ingredients **********
$ingreds_block = $html->find('table.[class=ingredients table-header]');
foreach($ingreds_block[0]->find('tr') as $row){
$line_cut = strip_tags($row);
$line_end = trim($line_cut).";";
echo $line_end."<br>";
//file_put_contents('../usr/'.$_SESSION['userid'].'/'.'ingred_list.txt', $line_end.PHP_EOL, FILE_APPEND | LOCK_EX);
}
// ******** end************
Das funktioniert soweit und erzeugt die Ausgabe je Zeile:
[Menge] [Einheit] [Bezeichung] [Bezeichnung] [Bezeichnung](n);
Was ich aber benötige ist:
[Menge],[Einheit],[Bezeichnung Bezeichnung Bezeichnung (n)];
Ein einfaches str_replace() funktioniert leider nicht, das sieht dann als Bsp. so aus:
800,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,g,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,Tafelspitz,vom,Rind;
1,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,Port.,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,Suppengemüse,(Lauch,,Sellerie,,Zwiebel,,Möhre);
3,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,Lorbeerblätter;
1,½,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,Liter,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,Gemüsebrühe,oder,Fleischbrühe;
2,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,Gemüsezwiebel(n);
1,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,EL,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,Senf,,mittelscharfer;
2,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,EL,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,Butter;
1,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,EL,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,Mehl;
5,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,cl,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,Weinessig;
1,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,EL,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,Zucker;
Salz,und,Pfeffer;
Test URL: https://www.chefkoch.de/rezepte/80242118...eisch.html
Woher die vielen 'Leerzeichen' kommen, konnte ich bis jetzt nicht nachvollzeihen. Im DOM sieht man nichts davon.
Eine weitere foreach()-Aufsplittung war bis auch nicht erfolgreich.
Hat mir wer einen Tipp?
Vielen Dank!
|
|
|
Web-Widget erstellen, das auf "Third-Party-Websites" eingebunden werden kann (CORS) |
Geschrieben von: atokirina - 17.03.2023, 17:51 - Forum: Javascript
- Antworten (3)
|
 |
Hallo,
ich versuche eine Art Web-Widget zu erstellen, das auf "Third-Party-Websites" eingefügt werden soll. Aber irgendwie lauf ich ständig in das CORS rein. Ich habe versucht direkt ein iframe zu nutzen und auch auf eine Javascript oder JSON-Datei zuzugreifen. Alle bisherigen Versuche wurden durch das CORS verhindert. Auf der Sender-Seite habe ich spezielle CORS-Einstellungen ausgeführt (Drupal 9, PHP 8.1), die die Domain der Third-Part-Website als "allowed-origin" authentifizieren sollten, jedoch scheinen diese nicht richtig zu greifen, oder ich "hole" die Inhalte nicht richtig von der Third-Part-Website aus ab.
Wie kann ich denn z.B. einem iframe CORS-Informationen mitgeben? Z.B. einen "allowedHeader" oder "allowedMethod"? Ich nehme an, dass ich das benötigen könnte, um eine Art "Handshake" zwischen Sender und Empfänger Seite herzustellen. Die "X-Frame-Options" habe ich auch noch nicht durchdrungen, wie ich das mit Third-Party-Websites nutzen soll, weil es da ja nur 2 Optionen gibt: "DENY" und "SAMEORIGIN". Beides hört sich für mich unpassend an für den Verwendungszweck.
auf der Sender-Seite soll man scheinbar in einer Datei (services.yml) die CORS-Einstellungen vornehmen, diese lauten bei mir wie folgt:
cors.config:
enabled: true
# Specify allowed headers, like 'x-allowed-header'.
allowedHeaders: ['x-csrf-token','authorization','content-type','accept','origin','x-requested-with', 'access-control-allow-origin','x-allowed-header']
# Specify allowed request methods, specify ['*'] to allow all possible ones.
allowedMethods: ['POST', 'GET', 'OPTIONS', 'PATCH', 'DELETE']
# Configure requests allowed from specific origins.
allowedOrigins: ['https://www.third-party-website.de']
# Sets the Access-Control-Expose-Headers header.
exposedHeaders: []
# Sets the Access-Control-Max-Age header.
maxAge: false
# Sets the Access-Control-Allow-Credentials header.
supportsCredentials: true
Folgendes Script habe ich u.a. (erfolglos) ausprobiert:
function injectSameOriginIframeFromRemote(remoteSrcUrl, target, append, OPT_cb, OPT_useProxy) {
var PROXY_BASE = 'https://cors-anywhere.herokuapp.com';
useProxy = typeof(OPT_useProxy)==='boolean' ? OPT_useProxy : true;
cb = typeof (OPT_cb) === 'function' ? OPT_cb : function () { };
var iframe = document.createElement('iframe');
if (append) {
target.appendChild(iframe);
iframe.style.width = '100%';
iframe.style.height = '100%';
}
else {
target.replaceWith(iframe);
}
var xhr = new XMLHttpRequest();
xhr.onreadystatechange = function() {
if (xhr.readyState === 4){
if (xhr.status === 200){
var rawHtml = xhr.responseText;
var baseString = '';
rawHtml = rawHtml.replace(/]+>/gim,'');
rawHtml = rawHtml.replace(/<\/head>/gim,baseString + '\n' + '');
iframe.contentWindow.document.open();
iframe.contentWindow.document.write(rawHtml);
iframe.contentWindow.document.close();
}
else {
cb(false);
}
}
}
xhr.open('GET',PROXY_BASE + '/' + remoteSrcUrl);
xhr.send();
iframe.addEventListener('load', cb);
}
Quelle: https://joshuatz.com/posts/2019/embeddin...c-options/
Leider erschließt sich mir hier auch nicht, was die Variablen bedeuten sollen, die der Funktion übergeben werden (remoteSrcUrl, target, append, OPT_cb, OPT_useProxy), somit weiss ich auch nicht, mit was sie zu ersetzen sind beim Aufruf der Funktion.
Eine andere Variante (ebenfalls erfolglos):
let response = await fetch('https://site.com/service.json', {
method: 'PATCH',
headers: {
'Content-Type': 'application/json',
'API-Key': 'secret'
}
});
Quelle: https://javascript.info/fetch-crossorigin
Müsste einer der Varianten funktionieren, oder ein einfaches iframe - wenn das CORS auf der Sender-Seite korrekt eingestellt ist? Soll heissen: Liegt der Fehler möglicherweise nur auf der Sender-Seite, oder liegt es an beiden, oder vllt. nur an der Empfänger-Seite?
Vielen Dank schon mal für Eure Hilfe.
Liebe Grüße,
pyretta
|
|
|
HILFEEE bekomme kein Wert aus einer Funktion |
Geschrieben von: Oly - 16.03.2023, 10:25 - Forum: Javascript
- Keine Antworten
|
 |
Hallo zusammen, ich bin am verzweifeln und komme nicht weiter. Hoffe jemand kann mir da rasch helfen.
Mein Problem ist, das ich einen Wert nicht aus einer Funktion bekomme. Innerhalb dieser, bekomme ich ihn. Ich habe schon etliche Versuche gestartet, aber immer das selbe Problem.
let meinText;
var meineID='M040-11111';
function lesen(){
// meinText="";
chrome.storage.local.get(meineID, function (result)
{
meinText= result[meineID];
//Teil 1
Seite.document.write("aus der Funktion "+meinText);
});
//Teil2
Seite.document.write(meineID+" "+ meinText);
}
meinText wird im ersten "Teil1" gefüllt und sauber ausggegeben
meinText im"Teil2" ist undefine und weiss nicht warum, was ich auch nicht nachvollziehen kann, warum bekomme ich die Ausgabe von "Teil2" zuerst ausgegeben?
selbst wenn ich den Versuch eines Beispiels aus dem Netz folge ein Objekt zu füllen
let meinText={val:""};
var meineID='M040-11111';
function lesen(){
// meinText="";
chrome.storage.local.get(meineID, function (result)
{
//meinText= result[meineID];
result.val=result[meineID];
Seite.document.write("aus der Funktion "+meinText);
});
Seite.document.write(meineID+" "+ meinText);
}
sind beide Ausgaben von "meinText" undefine.Ich bin ratlos
|
|
|
Funktion mit Array |
Geschrieben von: nbergmann - 13.03.2023, 20:31 - Forum: Javascript
- Antworten (11)
|
 |
Anfängerfrage:
<!DOCTYPE html><html lang="de">
<head>
<meta charset="utf-8">
<title>Funktion mit Array</title>
<link rel="stylesheet" href="js4.css">
</head>
<script>
function toArray(a, b)
{
return [a, b];
}
</script>
<body>
<script>
document.write("Bernd");
toArray (27, 11);
</script>
</body>
</html>
Was mach ich hier falsch? Warum erscheint nur "Bernd" auf dem Bildschirm, aber nicht der Inhalt des Arrays?
|
|
|
input.value erst nach Aktualisieren der Seite auslesbar |
Geschrieben von: Marco - 11.03.2023, 22:17 - Forum: Javascript
- Antworten (3)
|
 |
Guten Abend,
ich bin noch blutiger Anfänger in JS und allgemein beim Programmieren und habe mich an ein kleines Projekt zur Übung gemacht. Sicher kein Ding für viele, aber für mich eine Herausforderung. Nun probiere ich schon seit fast zwei Stunden hin und her und bekomme es einfach nicht hin.
Ich habe ein script in einer html-Datei, welches Kreisberechnungen vornehmen soll. Dazu gibt es ein input, wo der user einen Wert in mm eintragen soll. Danach zwei Buttons die zur Flächen- bzw. Umfangberechnung des Kreises führen. Ausgegeben wird das Ergebnis über innerhtml in einen Paragraph am Ende der html-Datei.
Die Funktionen laufen auch alle. Aber wenn ich im Inputfeld einen Wert eintrage, wird dieser nicht erkannt. Erst wenn ich mit F5 die Seite aktualisiere, funktioniert die Berechnung.
Ich habe also scheinbar ein Timing-Problem?
Ich weiß mir keinen Rat mehr. Für mich ist der Code in logischer Reihenfolge geschrieben und funktieniert ja -wie gesagt- auch. Aber eben erst nach Aktualisieren der Seite.
Ich hoffe ich habe mein Problem so schildern können, dass ihr wisst was ich meine.
Bin für jede Hilfe dankbar.
Grüße
Marco
hier ist mein Code:
<body>
<h1>Hier kannst du verschiedene Funktionen zur Berechnung von Kreisen nutzen.</h1>
<div class="introText">
<p>Gib den Radius deines Kreises in mm in das Eingabefeld ein.</p>
</div>
<div class="eingabeBereich">
<div>
<input id="idEingabefeld" type="text" maxlength="6" placeholder="Radius in mm...">
</div>
<div>
<button id="idFlächenButton">Kreisfläche berechnen</button>
</div>
<div>
<button id="idUmfangButton">Kreisumfang berechnen</button>
</div>
<p id="idErgebnis" class="ergebnisAusgabe">Ergebnis:</p>
</div>
<script>
"use strict"
let flächenButton = document.getElementById("idFlächenButton");
let eingabewert = document.getElementById("idEingabefeld");
let übergabewert = eingabewert.value;
let umfangButton = document.getElementById("idUmfangButton");
let ergebnisAusgabe = document.getElementById("idErgebnis");
const pi = 3.1415;
let radius = übergabewert;
let qcm = kreisflächeBerechnen() / 100;
function kreisflächeBerechnen() {
return (radius * radius * pi);
}
function kreisflächeÜbergeben() {
if (übergabewert.length > 0) {
ergebnisAusgabe.innerHTML = "Der Kreis hat eine Fläche von: " + kreisflächeBerechnen() + " qmm. Das sind " + qcm + " qcm.";
eingabewert.value = "";
} else {
alert("Bitte gib eine Zahl ein.")
}
}
flächenButton.addEventListener("click", kreisflächeÜbergeben);
function kreisumfangBerechnen() {
return (radius * 2 * pi);
}
function kreisumfangÜbergeben() {
if (übergabewert.length > 0) {
ergebnisAusgabe.innerHTML = "Der Kreis hat einen Umfang von " + kreisumfangBerechnen() + " mm bzw. " + (kreisumfangBerechnen() / 10) + " cm.";
eingabewert.value = "";
} else {
alert("Bitte gib eine Zahl ein.")
}
}
umfangButton.addEventListener("click", kreisumfangÜbergeben);
</script>
</body>
|
|
|
bekomme die Variable nicht gespeichert oder ausgelesen |
Geschrieben von: Oly - 11.03.2023, 19:34 - Forum: Javascript
- Antworten (2)
|
 |
Hallo zusammen, möchte gerne die API Chrome.Storage.local set bzw get nutzen. Der Key soll jedoch variable sein, was ich hinbekommen habe, zuminndest wird er mir ausgelesen, aber egal wie ich es drehe und wende, nicht den Text der hinter dem Schlüssel steckt.
var meineID='M04055555';
function loeschen(){
chrome.storage.local.remove(meineID);
}
function speichern(){
chrome.storage.local.set({[meineID]:"test"});
}
function lesen(){
meinText="";
chrome.storage.local.get([meineID], function (result) {
meinText = result.meineID;
Seite.document.write(meinText);
});
} vielleicht sieht jemand den Fehler
|
|
|
|