@pl
Einfügen geht schon aber spätestens beim Zugriff mit $(el).html() oder $(el).text() geht die Binary kaputt weil sie weder text noch html ist sondern Oktetten beliebiger Wertigkeiten enthalten kann.
Ich habe es gerade mal versucht (in PHP):
<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8">
<title>data-block-test</title>
</head>
<body>
<script type="image/jpeg"><?=file_get_contents(__DIR__ . '/demo.jpg')?></script>
</body>
</html>
Das daraus generierte HTML ist laut Validator tatsächlich ungültig. @dedlfix hat es hier genauer erklärt. (Deshalb fällt auch so was wie <script type="image/jpeg">
wahrscheinlich allein prinzipbedingt als Option weg. Vielleicht könnte man die Bytes zwar mit numerischen HTML-Entities maskieren. Aber in der Richtung werde zumindest ich jetzt nicht weiterforschen.)
<script type="text/plain" id="data">base64==ASCII</script>
Ich werde wahrscheinlich auf application/json
setzen, aber die Binärdaten darin base64-kodieren.
Eine andere Variante bestünde darin, hinter Deiner Seite einen Webservice zu verstecken, der beim Aufruf dieser mit einem bestimmten Parameter die Binary direkt ausliefert.
Das ist keine Option, da es darum geht, mehr oder weniger eigenständige Dokumente zu erzeugen, die keine weitere serverseitige Software zur Darstellung benötigen.
Oder Du zentralisierst einen solchen Service in einer zentralen Location und deklarierst diese in einem Custom-Header, damit wird das Abfischen auch automatisierbar.
Das verstehe ich nicht genau, aber auch das wird nicht in die Richtung dessen gehen, was mir vorschwebt. Das Tool soll am Ende jeder nutzen können, ohne sich weitere Abhängigkeiten zu Webservices oder dergleichen einzuhandeln.[1]
Danke für die Antworten.
Abgesehen von der externen Einbindung von Libraries wie jQuery, MathJax oder Bootstrap. Auch die würde ich generell lieber bundlen, aber da wird es dann irgendwann ziemlich unpraktikabel. ↩︎