How to bind events to the rendition in epub.js











up vote
1
down vote

favorite












I want to register a right click listener on the page in epub.js but don't know how to do it. There is also passEvents method of rendition object but couldn't find any help on that either. This is my last try:



rendition.on("rendered", () => {
const contents = rendition.getContents()
contents.document.addEventListener('contextmenu', showContextMenu, false);
});









share|improve this question
























  • Do you want to pass the event when rendition is rendered?
    – Tico
    Nov 18 at 9:05















up vote
1
down vote

favorite












I want to register a right click listener on the page in epub.js but don't know how to do it. There is also passEvents method of rendition object but couldn't find any help on that either. This is my last try:



rendition.on("rendered", () => {
const contents = rendition.getContents()
contents.document.addEventListener('contextmenu', showContextMenu, false);
});









share|improve this question
























  • Do you want to pass the event when rendition is rendered?
    – Tico
    Nov 18 at 9:05













up vote
1
down vote

favorite









up vote
1
down vote

favorite











I want to register a right click listener on the page in epub.js but don't know how to do it. There is also passEvents method of rendition object but couldn't find any help on that either. This is my last try:



rendition.on("rendered", () => {
const contents = rendition.getContents()
contents.document.addEventListener('contextmenu', showContextMenu, false);
});









share|improve this question















I want to register a right click listener on the page in epub.js but don't know how to do it. There is also passEvents method of rendition object but couldn't find any help on that either. This is my last try:



rendition.on("rendered", () => {
const contents = rendition.getContents()
contents.document.addEventListener('contextmenu', showContextMenu, false);
});






javascript epub.js






share|improve this question















share|improve this question













share|improve this question




share|improve this question








edited Nov 18 at 10:16









Poul Bak

5,26831132




5,26831132










asked Nov 18 at 7:59









pouya

66321427




66321427












  • Do you want to pass the event when rendition is rendered?
    – Tico
    Nov 18 at 9:05


















  • Do you want to pass the event when rendition is rendered?
    – Tico
    Nov 18 at 9:05
















Do you want to pass the event when rendition is rendered?
– Tico
Nov 18 at 9:05




Do you want to pass the event when rendition is rendered?
– Tico
Nov 18 at 9:05












1 Answer
1






active

oldest

votes

















up vote
1
down vote



accepted










Based on what you asked and I hope I got it right, you want a contextmenu event at the book itself, right?



If that's the case I used the following JS:



rendition.on("rendered", (e,i) => {;
i.document.documentElement.addEventListener('contextmenu', (cfiRange, contents) => {
console.log('hey');
})
});


This code simply returns hey when I right click at the book. But as you can see there are two parameters (cfiRange, contents) which contains what you need.



In any case, I created a fiddle.



Another solution would be use document as the element receiving the event, but in my tests it gets everything but the book.






share|improve this answer





















    Your Answer






    StackExchange.ifUsing("editor", function () {
    StackExchange.using("externalEditor", function () {
    StackExchange.using("snippets", function () {
    StackExchange.snippets.init();
    });
    });
    }, "code-snippets");

    StackExchange.ready(function() {
    var channelOptions = {
    tags: "".split(" "),
    id: "1"
    };
    initTagRenderer("".split(" "), "".split(" "), channelOptions);

    StackExchange.using("externalEditor", function() {
    // Have to fire editor after snippets, if snippets enabled
    if (StackExchange.settings.snippets.snippetsEnabled) {
    StackExchange.using("snippets", function() {
    createEditor();
    });
    }
    else {
    createEditor();
    }
    });

    function createEditor() {
    StackExchange.prepareEditor({
    heartbeatType: 'answer',
    convertImagesToLinks: true,
    noModals: true,
    showLowRepImageUploadWarning: true,
    reputationToPostImages: 10,
    bindNavPrevention: true,
    postfix: "",
    imageUploader: {
    brandingHtml: "Powered by u003ca class="icon-imgur-white" href="https://imgur.com/"u003eu003c/au003e",
    contentPolicyHtml: "User contributions licensed under u003ca href="https://creativecommons.org/licenses/by-sa/3.0/"u003ecc by-sa 3.0 with attribution requiredu003c/au003e u003ca href="https://stackoverflow.com/legal/content-policy"u003e(content policy)u003c/au003e",
    allowUrls: true
    },
    onDemand: true,
    discardSelector: ".discard-answer"
    ,immediatelyShowMarkdownHelp:true
    });


    }
    });














     

    draft saved


    draft discarded


















    StackExchange.ready(
    function () {
    StackExchange.openid.initPostLogin('.new-post-login', 'https%3a%2f%2fstackoverflow.com%2fquestions%2f53358934%2fhow-to-bind-events-to-the-rendition-in-epub-js%23new-answer', 'question_page');
    }
    );

    Post as a guest















    Required, but never shown

























    1 Answer
    1






    active

    oldest

    votes








    1 Answer
    1






    active

    oldest

    votes









    active

    oldest

    votes






    active

    oldest

    votes








    up vote
    1
    down vote



    accepted










    Based on what you asked and I hope I got it right, you want a contextmenu event at the book itself, right?



    If that's the case I used the following JS:



    rendition.on("rendered", (e,i) => {;
    i.document.documentElement.addEventListener('contextmenu', (cfiRange, contents) => {
    console.log('hey');
    })
    });


    This code simply returns hey when I right click at the book. But as you can see there are two parameters (cfiRange, contents) which contains what you need.



    In any case, I created a fiddle.



    Another solution would be use document as the element receiving the event, but in my tests it gets everything but the book.






    share|improve this answer

























      up vote
      1
      down vote



      accepted










      Based on what you asked and I hope I got it right, you want a contextmenu event at the book itself, right?



      If that's the case I used the following JS:



      rendition.on("rendered", (e,i) => {;
      i.document.documentElement.addEventListener('contextmenu', (cfiRange, contents) => {
      console.log('hey');
      })
      });


      This code simply returns hey when I right click at the book. But as you can see there are two parameters (cfiRange, contents) which contains what you need.



      In any case, I created a fiddle.



      Another solution would be use document as the element receiving the event, but in my tests it gets everything but the book.






      share|improve this answer























        up vote
        1
        down vote



        accepted







        up vote
        1
        down vote



        accepted






        Based on what you asked and I hope I got it right, you want a contextmenu event at the book itself, right?



        If that's the case I used the following JS:



        rendition.on("rendered", (e,i) => {;
        i.document.documentElement.addEventListener('contextmenu', (cfiRange, contents) => {
        console.log('hey');
        })
        });


        This code simply returns hey when I right click at the book. But as you can see there are two parameters (cfiRange, contents) which contains what you need.



        In any case, I created a fiddle.



        Another solution would be use document as the element receiving the event, but in my tests it gets everything but the book.






        share|improve this answer












        Based on what you asked and I hope I got it right, you want a contextmenu event at the book itself, right?



        If that's the case I used the following JS:



        rendition.on("rendered", (e,i) => {;
        i.document.documentElement.addEventListener('contextmenu', (cfiRange, contents) => {
        console.log('hey');
        })
        });


        This code simply returns hey when I right click at the book. But as you can see there are two parameters (cfiRange, contents) which contains what you need.



        In any case, I created a fiddle.



        Another solution would be use document as the element receiving the event, but in my tests it gets everything but the book.







        share|improve this answer












        share|improve this answer



        share|improve this answer










        answered Nov 18 at 10:09









        Tico

        2,02812331




        2,02812331






























             

            draft saved


            draft discarded



















































             


            draft saved


            draft discarded














            StackExchange.ready(
            function () {
            StackExchange.openid.initPostLogin('.new-post-login', 'https%3a%2f%2fstackoverflow.com%2fquestions%2f53358934%2fhow-to-bind-events-to-the-rendition-in-epub-js%23new-answer', 'question_page');
            }
            );

            Post as a guest















            Required, but never shown





















































            Required, but never shown














            Required, but never shown












            Required, but never shown







            Required, but never shown

































            Required, but never shown














            Required, but never shown












            Required, but never shown







            Required, but never shown







            Popular posts from this blog

            Costa Masnaga

            Fotorealismo

            Sidney Franklin