【问题标题】:Get canvas id "OnClick"获取画布 ID“OnClick”
【发布时间】:2019-06-25 05:45:38
【问题描述】:

我正在尝试使用 pdf.js 生成 pdf,现在我想在单击该特定画布时获取画布“id”。

这是我的小提琴演示 https://jsfiddle.net/14953eak/

代码:

<div class="container">
    <div class="col-xl-12 col-lg-12 col-md-12 col-sm-12">
        <div id='pdf-viewer'></div>
    </div>
</div>

脚本:

url = 'https://raw.githubusercontent.com/mozilla/pdf.js/ba2edeae/web/compressed.tracemonkey-pldi-09.pdf';
    var thePdf = null;
    var scale = 1;
    var canvas;
    var inst = this;
    var ctx;

    pdfjsLib.GlobalWorkerOptions.workerSrc = 'https://mozilla.github.io/pdf.js/build/pdf.worker.js';
    pdfjsLib.getDocument(url).promise.then(function (pdf) {
        thePdf = pdf;
        viewer = document.getElementById('pdf-viewer');
        for (page = 1; page <= pdf.numPages; page++) {
            canvas = document.createElement("canvas");
            canvas.id = "Page-" + page;
            canvas.className = 'pdf-page-canvas';
            viewer.appendChild(canvas);
            renderPage(page, canvas);
        }
    });

    function renderPage(pageNumber, canvas) {
        thePdf.getPage(pageNumber).then(function (page) {
            viewport = page.getViewport(scale);
            canvas.height = viewport.height;
            canvas.width = viewport.width;
            newcanvas = document.getElementById("Page-" + pageNumber);
            ctx = canvas.getContext('2d');
            var renderContext = {
                canvasContext: ctx,
                viewport: viewport
            };
            var renderTask = page.render(renderContext);
            renderTask.promise.then(function () {
                console.log('Page rendered');
            });
        });
    }

【问题讨论】:

    标签: jquery html5-canvas pdf.js


    【解决方案1】:

    要实现这一点,您需要在创建canvas 元素的for 循环中添加click 事件处理程序。然后您可以在事件处理函数中使用this.id 检索元素的id。试试这个:

    canvas.addEventListener('click', function() {
      console.log(this.id);
      // work with the id here...
    });
    

    Updated fiddle

    【讨论】:

    • 非常感谢。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2015-11-22
    • 2022-08-24
    • 2017-09-12
    • 2013-01-18
    相关资源
    最近更新 更多