<script> extern Inhalt anzeigen
Henry
- html
- javascript
- wiki
Hallo,
bsp. ein wenig js
Kann ich nun zb. einbinden mit:
<script src="xy.js"></script>
oder inline:
<script>
var a = 123;
var b = 77;
alert(a+b);
// gewöhne ich mich auch nie dran, dass js + für stringverkettung und mathe zugleich ist
</script>
Da der Inhalt beim externen Script irgendwie vorhanden ist, frage ich mich ob ich irgendwie drauf zugreifen kann als reinen Text? Ähnlich srcdoc bei Iframe?
Alternative wäre die URL mit fetch oder sonstwas nochmal zu laden, ist aber nicht was ich mir vorstelle.
btw. Mir ist gerade aufgefallen, dass in diesem Wikieintrag mehrmals erwähnt wird, Scripte u.U. unten im Dokument zu platzieren. Das ist aber nicht unbedingt so bzw. gibt eine Alternative,
<script type="module"...>
die mir neulich dankenswerterweise von @Orlok gezeigt wurde und die ich seitdem schon oft einsetze. Es funktioniert bisher zuverlässig, nur mein Editor Highlighting kommt damit nicht ganz zurecht. Deshalb habe ich es im Wiki auch nicht geändert, weil ich nicht weiss wie ihr das seht.
Gruss
Henry
@@Henry
<script> var a = 123; var b = 77; alert(a+b); // gewöhne ich mich auch nie dran, dass js + für stringverkettung und mathe zugleich ist </script>
Dann verwende doch für Strings alert(`${a}${b}`)
.
Bzw. console.log(`${a}${b}`)
, aber das ist eine andere Diskussion.
Da der Inhalt beim externen Script irgendwie vorhanden ist, frage ich mich ob ich irgendwie drauf zugreifen kann als reinen Text?
?? Das Script soll auf seinen eigenen Code zugreifen? Wozu soll das gut sein?
😷 LLAP
Hallo Gunnar,
?? Das Script soll auf seinen eigenen Code zugreifen? Wozu soll das gut sein?
nennen wir es mal eine Machbarkeitsstudie. Im Moment bin ich an einem Projekt dran, was den Anspruch hat lokal genau so zu funktionieren wie mit Serverumgebung. Überraschenderweise ist es schon zu ca. 90% fertig, was vor einiger Zeit noch ohne PHP,usw undenkbar gewesen wäre. Jetzt gehts eigentlich nur noch um Feintuning und Zusatzoptionen.
Beispiel: Du hast hunderte Scriptschnipsel, möchtest die demonstrieren und gleichzeitig dokumentieren. Mein System bindet die Schnipsel inline ein und erstellt daraus eine HTML-Doku Seite. Bedeutet aber auch leider, ich muss vorher die Script mühselig per c&p dort einfügen. Wenn ich die aber extern einbinden würde, wärs nur eine Zeile und den Output daraus könnte ich als Doku generieren.
Wie gesagt, nur ein Beispiel und auch nicht unbedingt notwendig aber lieber hier mal nachgefragt, als dass ich mich hinterher ärgere und erfahre wäre doch leicht möglich gewesen, wie zb. dieses geniale type="module"
Du siehst Gunnar, erstmal reine Experimentierfreude.
Gruss
Henry
Hallo Henry,
so weit ich das weiß, sieht es nicht gut aus für den automatisierten Sourcecode-Klau 😉.
Der Browser bietet Dir im script-Element den Sourcetext im text Attribut an, wenn es ein Inlinescript ist. Andernfalls steht da nur das src Attribut zur Verfügung.
Dessen Inhalt per AJAX zu laden kann dann an CORS scheitern (ein Ajax-Request darf weniger als ein Script-Abruf, weswegen man JSONP erfunden hat). Der Browser in den Entwicklerwerkzeugen fragt da natürlich nicht nach, die kümmern sich nicht um CORS.
Das Script-Element findest Du über document.currentScript
(nicht immer), oder bei Modulen über import.meta.url
.
Laterale Informationen:
Wenn Du nur das Script-Element finden willst, in dem Du unterwegs bist, gibt es bei externen Scripten auch noch den Trick von require.js. Die laufen über document.scripts und suchen das heraus, wo in src "require.js" angesprochen wird. Und greifen dann die am script-Element gesetzten data-Attribute ab…
Wenn Du Dich in einer benannten Funktion, z.B. function foo
, befindest, kannst Du über foo.toString() den Sourcecode der Funktion erhalten.
Rolf