Howdy, Stranger!

It looks like you're new here. If you want to get involved, click one of these buttons!

Supported by

Text Wrapping

Hi,


I have an experiment with a JavaScript backend and I'm having issue with text wrapping. Specifically, I have a sketchpad item which presents a sentence from a list. That sentence is defined as variable that is randomly selected on each trial from a CSV file. Some of the sentences are a bit long and are not getting wrapped, so some of the words do not appear on the screen. I chose a full screen setting, which should ideally work on a variety of screen sizes since that experiment will be run online.

Any advice on text wrapping would be helpful!


Best wishes,

Elinor

Comments

  • Hi @elinora18,

    The problem you're describing is one of the limitations of OSWeb, but it can be fixed with a fairly simple method.

    To display longer text that wraps correctly on a sketchpad in OpenSesame with OSWeb, you can use a simple JavaScript code, first to declare a wrapping function at the onset of your task (this is done at the very beginning of your task), and then inside the trial sequence (in its prepare phase) to transform the text into one that includes line breaks. Where these line breaks occur depends on how much width you want the text to be. That will of course depend on the font size you use and the dimension of the screen you set your experiment to use.

    Here is the code to insert at the onset of you task, inside a javascript_inline object:

    // Define the wrapText function
    // This is the function you'll be calling'
    function wrapText(text, maxLineLength) {
    let words = text.split(' ');
    let lines = [];
    let currentLine = [];
    
    words.forEach(word => {
    let currentLength = currentLine.join(' ').length + word.length + 1;
    if (currentLength <= maxLineLength) {
    currentLine.push(word);
    } else {
    lines.push(currentLine.join(' '));
    currentLine = [word];
    }
    });
    
    if (currentLine.length > 0) {
    lines.push(currentLine.join(' '));
    }
    
    return lines.join('\n');
    }
    

    Here is the code to use in the prepare phase of the rial sequence in which your text will be presented:

    // Get the text from the variable
    var text = vars.my_text;
    
    // Wrap the text with a maximum line length of 50 characters
    var wrappedText = wrapText(text, 50);
    
    // Store the wrapped text back into a variable
    vars.wrapped_text = wrappedText;
    

    In that code, you'll see a "50" value. This is the number of characters you want each line of text to have on the sketchpad. You can change this value to whatever works well in your task.

    I attach a little expample with sentences of increasing length.

    Hopefully this make sense and you'll easily be able to transfer it to your own task.


    Hope this helps.

    Best,

    Fabrice.

    Buy Me A Coffee

  • Hi @Fab ,


    The scripts worked perfectly! Thanks so much!


    Best,

    Elinor

Sign In or Register to comment.

agen judi bola , sportbook, casino, togel, number game, singapore, tangkas, basket, slot, poker, dominoqq, agen bola. Semua permainan bisa dimainkan hanya dengan 1 ID. minimal deposit 50.000 ,- bonus cashback hingga 10% , diskon togel hingga 66% bisa bermain di android dan IOS kapanpun dan dimana pun. poker , bandarq , aduq, domino qq , dominobet. Semua permainan bisa dimainkan hanya dengan 1 ID. minimal deposit 10.000 ,- bonus turnover 0.5% dan bonus referral 20%. Bonus - bonus yang dihadirkan bisa terbilang cukup tinggi dan memuaskan, anda hanya perlu memasang pada situs yang memberikan bursa pasaran terbaik yaitu http://45.77.173.118/ Bola168. Situs penyedia segala jenis permainan poker online kini semakin banyak ditemukan di Internet, salah satunya TahunQQ merupakan situs Agen Judi Domino66 Dan BandarQ Terpercaya yang mampu memberikan banyak provit bagi bettornya. Permainan Yang Di Sediakan Dewi365 Juga sangat banyak Dan menarik dan Peluang untuk memenangkan Taruhan Judi online ini juga sangat mudah . Mainkan Segera Taruhan Sportbook anda bersama Agen Judi Bola Bersama Dewi365 Kemenangan Anda Berapa pun akan Terbayarkan. Tersedia 9 macam permainan seru yang bisa kamu mainkan hanya di dalam 1 ID saja. Permainan seru yang tersedia seperti Poker, Domino QQ Dan juga BandarQ Online. Semuanya tersedia lengkap hanya di ABGQQ. Situs ABGQQ sangat mudah dimenangkan, kamu juga akan mendapatkan mega bonus dan setiap pemain berhak mendapatkan cashback mingguan. ABGQQ juga telah diakui sebagai Bandar Domino Online yang menjamin sistem FAIR PLAY disetiap permainan yang bisa dimainkan dengan deposit minimal hanya Rp.25.000. DEWI365 adalah Bandar Judi Bola Terpercaya & resmi dan terpercaya di indonesia. Situs judi bola ini menyediakan fasilitas bagi anda untuk dapat bermain memainkan permainan judi bola. Didalam situs ini memiliki berbagai permainan taruhan bola terlengkap seperti Sbobet, yang membuat DEWI365 menjadi situs judi bola terbaik dan terpercaya di Indonesia. Tentunya sebagai situs yang bertugas sebagai Bandar Poker Online pastinya akan berusaha untuk menjaga semua informasi dan keamanan yang terdapat di POKERQQ13. Kotakqq adalah situs Judi Poker Online Terpercayayang menyediakan 9 jenis permainan sakong online, dominoqq, domino99, bandarq, bandar ceme, aduq, poker online, bandar poker, balak66, perang baccarat, dan capsa susun. Dengan minimal deposit withdraw 15.000 Anda sudah bisa memainkan semua permaina pkv games di situs kami. Jackpot besar,Win rate tinggi, Fair play, PKV Games