Как написать выделенный текст из браузера Firefox как изображение - PullRequest
1 голос
/ 11 января 2012

Проблема, с которой я сталкиваюсь: предположим, что мы выбрали текст в окне браузера.Затем при наведении мыши мне нужно сохранить этот выделенный текст как изображение в системе клиента.

Я могу записать этот выделенный текст в текстовый файл в локальной системе через JavaScript и XUL.Но теперь я должен сохранить это как изображение?

У кого-нибудь есть какой-либо код JavaScript или предложение?

Я сделал это с помощью расширения Firefox, используя XUL. Осталась только проблема - сохранить тексткак изображение.

Ответы [ 2 ]

3 голосов
/ 11 января 2012

Вы можете сделать это, используя тег <canvas> . Это HTML-тег, но вы также можете использовать его в XUL - просто не забудьте указать пространство имен HTML. Если вы указываете этот тег в своем документе XUL, вы делаете это так:

<canvas xmlns="http://www.w3.org/1999/xhtml" width="..." height="..."/>

Или, если вы создаете его динамически:

var canvas = document.createElementNS("http://www.w3.org/1999/xhtml", "canvas");

Затем вы можете нарисовать текст на холсте . И вы можете использовать canvas.toDataURL() для преобразования содержимого холста в изображение ( фрагмент кода для сохранения этого изображения в файл ).

0 голосов
/ 11 января 2012

Вы можете сделать что-то вроде этого:

function getSelectedText()
{
    var t = '';
    if(window.getSelection)
        t = window.getSelection();
    else if(document.getSelection)
        t = document.getSelection();
    else if(document.selection)
        t = document.selection.createRange().text;

    return t;
}

$('.mySelectableItems').on('onmouseup', function(e)
{
    var text = getSelectedText();
    if(!text) return false;//stopping propagation!!

    var svg = $('<svg width="300" height="300"><text x="85" y="124">'+text+'</text></svg>');
});

После этого поместите svg в сеть, а в источник img поместите URL svg.

Через: Здесь , здесь , а также здесь .

...