Страницы: 1
Друзья, подскажите, есть ли дополнение, которое пнутое бы из обезьяннего user script (это важно) умело бы сграбить картинку из DOM. Повторное обращение к srс не катит, так как контент счетчика уже в ответ летит совсем другой. Вроде простая вещь, а упёрся и никак...
графический файл скрина хочу или сохранить на диск или лучше поиметь в виде base64 строки в вызывающем скрипте.
Отсутствует
Домен другой? Иначе просто canvas.toDataURL().
А впрочем, скрипт для MegaUpload, тот который распознавал капчу, брал картинки, кажется как раз с другого домена с помощью GM_xmlhttpRequest.
Отредактировано Lex1 (08-11-2012 23:23:55)
Отсутствует
... <!-- где-то в твоём XUL --> <html:canvas id="xcanvas" style="display:none;" width="600" height="400"/> <!-- усё --> ...
глобальную позицию можно вычислить следущей ф-ей
function elGlobalPos(element, brel) { var offsetLeft=0; var offsetTop=0; do { if (brel != undefined && element == brel) break; offsetLeft += element.offsetLeft; offsetTop += element.offsetTop; }while (element = element.offsetParent); var ret= new Object(); ret.x=offsetLeft; ret.y=offsetTop; return ret; };
//.. где-то в твоём жаваскрипте //target_document - документ, в котором находится картинка с id=capcha var some_dom_img_element = target_document.getElementById('capcha'); var pos = elGlobalPos(some_dom_img_element); //получаем глоб-позицию нужного элемента var width = some_dom_img_element.getAttribute('width'); var height = some_dom_img_element.getAttribute('height'); var canvas = document.getElementById("xcanvas"); //созданная в XUL-е канва var ctx = canvas.getContext("2d"); //скриншотим нужную область ctx.drawWindow(target_document.defaultView, pos.x, pos.y, width, height, "rgb(255,255,255)"); imgdata = ctx.getImageData(0, 0, width, height);
в итоге в переменной imgdata получаем пикселы изображения.
Отредактировано SunnyDay (09-11-2012 12:26:54)
Отсутствует
Страницы: 1