Mauspoition in einem Iframe-PDF ermitteln
bearbeitet von
@@Jochen
> Mein Versuch schlägt leider fehl, was mache ich falsch?
>
> Ich nutze Jquery.
Damit hast du dir die Frage doch selbst beantwortet. 😆
jQuery war mal gut, als es gut war. Heutzutage ist es überflüssig, weil es alles Gute aus jQuery mittlerweile in Vanilla-JavaScript gibt. (Außer man benutzt Biblotheken, die dummerweise auf jQuery basieren. Davon ist aber bei dir nichts zu erkennen.)
> ```js
> $(document).ready(function(){
> $('#DivID').on('click', function (e) {
> ```
wäre einfach
```js
document.addEventListener('DOMContentLoaded', function () {
document.querySelector('#DivID').addEventListener('click', function (event) {
```
Der etwas längere Code ist keine Rechtfertigung, eine 80 kB schwere, ansonsten unnütze Bibliothek zu laden.
Und bitte sprechende Varialen: `event`{:.good}, nicht `e`{:.bad}.
Wenn du Script am Ende des `body` notierst (was du schon wegen Performance tun solltest), brauchst du auch das `document.addEventListener('DOMContentLoaded', …)`{:.language-js} nicht. Bleibt übrig und mit Pfeilfunktion geschrieben:
```js
document.querySelector('#DivID').addEventListener('click', (event) => {
```
Aber ich rieche da ein weiteren Fehler: die Anwendung ist nur mit der Maus bedienbar, nicht mit anderen Eingabegeräten wie Tastatur, Sprachsteuerung usw.
Und hier noch ein Fehler:
> ~~~ HTML,bad
> <iframe id="DivID" src="http://localhost/pdf_viewer/web/viewer.html?file=639ef822a3cec.pdf" width="100%" height="11318.4px" name="PDF-Dokument22" scrolling="auto" frameborder="0">
> <p>Ihr Browser kann leider keine eingebetteten Frames anzeigen:<br /><br />
> </p>
> </iframe>
> ~~~
In den Elementinhalt des `iframe`-Elements gehört keine Schuldzuweisung an den Nutzer, sonder eine Alternative, um auf anderem Weg an den Inhalt zu kommen. In deinem Fall also ein Link zur PDF-Ressource:
```html
<iframe …>
<a href="…">PDF-Dokument 22</a>
</iframe>
```
🖖 Живіть довго і процвітайте
{:@uk}
--
*„Im Vergleich mit Elon Musk bei Twitter ist ein Elefant im Porzellanladen eine Ballerina.“*
— @Grantscheam auf Twitter