Forum Discussion

BenKanspedos's avatar
BenKanspedos
Community Member
13 years ago

Copy text from screen of published module?

Are there any work-arounds that would allow the learner to copy text that is on the screen of a published module?  I want them to be able to paste the text elsewhere.

Thanks!

27 Replies

  • Ben, or anyone who is reading. I know this thread is a bit dated but I am working on a similar module for agents who are taking call. They need to go to the knowledge base and copy a template (five lines of text) into their CRM screen. Has anyone come up with a solution for this simulation?

  • Hey Phillip! This thread is a bit dated and I'm not sure that any of the users are still subscribed here. If they are, hopefully they will chime in to assist you here.

    Have you considered adding the options that they need to copy in an attachment to the course perhaps?

  • Hey I know this thread is dated but there doesn't seem to be another option. I need the learners to be able to copy a link to a shared drive from the module screen. I tried adding it as a hyperlink but I don't have the same access as my learners will so I really need it to be accessible for copy and paste.

  • Hello Nena!

    Is it possible for you to provide the link on the screen if the learners can't copy the module screen link?

    If you have a file that we can take a look at, we'll provide specific workarounds. You can either attach it to this discussion or upload it to our team using this secure upload link.

  • Hey everyone 👋

    I've got a prototype workaround for enabling selectable text in published Storyline courses.

    It involves CSS and JavaScript.

    CSS:

    svg text,
    svg text * {
      user-select: text;
    }

    JavaScript:

    Code to remove the "uneventable" class from all parents of SVG "g" elements with the class of "vector-text-item".

    Happy to post the JavaScript if anyone's interested.

    • JoshOlsen-132a0's avatar
      JoshOlsen-132a0
      Community Member

      Hey Phil,

      The Script has to regularly poll the DOM and iterate over the SVG text elements.

      It's not perfect, hence being a prototype, but it solves a problem I have.

      var a11y = {
        intervalId: null,
        toUnlock: [],
        pollForSVGTextElements: function() {
          var textEls = document.querySelectorAll('svg g.vector-text-item');
          a11y.toUnlock = [];
          var textElParent = null;
          textEls.forEach((textEl) => {
            textElParent = textEl.parentElement;
            if (textElParent.classList.contains('uneventable')) {
              a11y.toUnlock.push(textElParent);
            }
          });
          a11y.removeClass();
        },
        removeClass: function() {
          a11y.toUnlock.forEach((lockedEl) => {
            lockedEl.classList.remove('uneventable');
          });
        },
        init: function() {
          a11y.intervalId = setInterval(function() {
            a11y.pollForSVGTextElements();
          }, 1000);
        }
      }
      a11y.init();

  • Hello Josh,

    I'm curious, did you get this method to work within a published story.html file within an LMS, e.g. Blackboard Learn,  or on a website?

    Thank you for sharing this with the community.

    • JoshOlsen-132a0's avatar
      JoshOlsen-132a0
      Community Member

      Hey Heather 👋

      Yes, this method has worked for modules on LMS's. But...

      I have since learned that my hack must go into the index_lms.html file if the Storyline module is published for "LMS". I have updated my previous post.

      "LMS" publish uses index_lms.html.

      "Web" publish uses story.html.

      I believe that sometime in the past both "LMS" and "Web" publishes used the story.html file.