0

データをMongoDBに保存するsocket.IOアプリケーションがあります。

最後の単語を除いて文全体をぼかす方法を見つけようとしています。

行が配置される場所のコード:

{#storylines}
<li>{text}</li>
{/storylines}

<input id="newstoryline" name="newstoryline" class="StoryBoard" type="text" placeholder="" onKeyDown="countChars()" onKeyUp="countChars()"/>

Socket.IO:

socket.on('updatechat', function (username, data) {
  $('#newstoryline').before('<li>' + data + '</li>');
});

アプリケーションは{maxlines}もテンプレートに送信し、残りの行数が含まれます。基本的に私は言う方法を探しています:

{maxlines}> 0の場合、最後の単語を除いて「データ」をぼかします。

したがって、サーバーからのメッセージが「こんにちは、私の名前はジムです!」だった場合。なりたい」* * * ** Jim! "なので、ユーザーはJim!という単語しか見ることができません。

Node.JS / Mongoose/Socket.IOを使用しています

{maxlines}> 0かどうかを確認するために、クライアント側で何らかのjavascript関数を実装してから、線にぼかし効果を適用する必要がありますか、それともサーバー側で何かを行う必要がありますか?

現在、これはサーバーが情報を送信する方法です。

app.get('/s/:id', function(req, res){
    Story.findOne({ sid: req.params.id }, function(err, story){
            if (err) {
            res.redirect('/')
        }
        else if(story == null) {
            res.redirect('/')
        }
        else{
    res.render('story', {
        title: 'Storifi',
        storytitle: story.title,
        storylines: story.lines,
        lines: story.maxlines,
        storyid: story.sid
            maxlines: story.maxlines   

                });
            }
        });
});

Socket.IO(サーバー側):

socket.on('sendchat', function (data) {
    // we tell the client to execute 'updatechat' with 2 parameters
    io.sockets.in(socket.room).emit('updatechat', socket.username, data);   
4

1 に答える 1

1

私はlixに同意します。ぼかしたいセクションをスパンタグでラップし、cssでそのタグにスタイルを適用します。

socket.on('updatechat', function (username, data) {
    var dataSplit= data.split(' ');
    var lastWord =   dataSplit.pop();
    var toBlur=  '<span class="blur">' + dataSplit.join(' ') +  '</span>'; 

     $('#newstoryline').before('<li>' + toBlur + lastWord + '</li>');
});

------------------- css ------------------------------ ---

.blur{
   color: transparent;  
   text-shadow: 0 0 5px #000;  
}
于 2012-10-28T13:49:56.117 に答える