Make Embeds Resizeable
Автор: panzi
Описание: этот скрипт позволяет изменять размеры врезанных (embedded) видео-роликов (работающих через флеш-плеер).
Использование: установите скрипт, зайдите на любой сайт, где есть флеш-видео. Чтобы изменить размер видео, следует зайти в меню вашего скрипт-менеджера (вашим скрипт-менеджером может быть Scriptish, Greasemonkey или ещё что-то).
В Scriptish надо кликнуть по иконке дополнения ПКМ (или ЛКМ по стрелочке рядом с иконкой) и в открывшемся меню выбрать пункт User Script Commands, который содержит выпадающий список всех команд всех включённых скриптов. Там будет команда "Make Embeds Resizable". После того, как вы по ней кликните - в правом нижнем углу всех флеш-видео на странице должен появиться квадратик, который можно таскать мышью. При этом будет происходить и изменение размеров видео.
Аналоги: на страничке автора этого скрипта есть букмарклет версия этого скрипта. Копия этого же букмарклета на другом хостинге.
Установить: с USO.
// ==UserScript== // @name Make Embeds Resizeable // @namespace http://twoday.tuwien.ac.at/pub/ // @description makes flash videos resizeable // @include * // ==/UserScript== var body = document.getElementsByTagName("body")[0]; var MIN_SIZE = 15; function insertAfter(node,newNode) { if (node.nextSibling == null) { node.parentNode.appendChild(newNode); } else { node.parentNode.insertBefore(newNode,node.nextSibling); } } function getDim(node,dim) { var value = node['offset'+dim.substring(0,1).toUpperCase()+dim.substring(1)]; if (value != 0) { return value; } value = node[dim]; if (value != undefined) { return parseInt(value); } value = node.style[dim]; if (/.*py$/.test(value)) { return parseInt(value); } if (/.*em$/.test(value)) { return parseInt(value) * 16; } return 0; } function addListener(grabber,nodes_to_resize) { var mouseDown = false; var moveX = 0; var moveY = 0; var width = 0; var height = 0; var preserveAspect = false; for (var i = 0; i < nodes_to_resize.length; ++ i) { var node = nodes_to_resize[i]; if (width == 0) { width = getDim(node, 'width'); } if (height == 0) { height = getDim(node, 'height'); } } var aspect = width / height; grabber.style.left=(width - 10) + "px"; grabber.style.top="-10px"; grabber.addEventListener("mousedown", function(e) { if (e.button == 0) { preserveAspect = e.ctrlKey; aspect = width / height; body.style.MozUserSelect="none"; mouseDown = true; moveX = e.pageX; moveY = e.pageY; return false; } return true; }, true); window.addEventListener("mousemove", function(e) { if (e.button == 0 && mouseDown) { var newWidth = width + e.pageX - moveX; var newHeight = height + e.pageY - moveY; if (preserveAspect && aspect != (newWidth/newHeight)) { newHeight = Math.sqrt(newWidth*newHeight/aspect); newWidth = newHeight * aspect; } if (newWidth >= MIN_SIZE) { grabber.style.left=(newWidth-10)+"px"; for (var i = 0; i < nodes_to_resize.length; ++ i) { var node = nodes_to_resize[i]; node.style.width = newWidth+"px"; node.width = width = newWidth; } moveX = e.pageX; } if (newHeight >= MIN_SIZE) { for (var i = 0; i < nodes_to_resize.length; ++ i) { var node = nodes_to_resize[i]; node.style.height = newHeight+"px"; node.height = height = newHeight; } moveY = e.pageY; } return false; } return true; }, true); window.addEventListener("mouseup", function(e) { if (e.button == 0 && mouseDown) { body.style.MozUserSelect="text"; mouseDown = false; return false; } return true; }, true); } var madeResizeable = {}; function makeResizeable(node) { if (!madeResizeable[node]) { var prev = node; var nodes_to_resize = [node]; while (prev.parentNode != undefined && (prev.parentNode.tagName == "OBJECT" || prev.parentNode.tagName == "A")) { prev = prev.parentNode; nodes_to_resize.push(prev); } var grabber = document.createElement("div"); grabber.madeResizeable=true; grabber.style.width="15px"; grabber.style.height="15px"; grabber.style.borderStyle="solid"; grabber.style.borderWidth="2px"; grabber.style.borderColor="#333333"; grabber.style.backgroundColor="#6a6a6a"; grabber.style.cursor="se-resize"; grabber.style.position="relative"; grabber.style.MozUserSelect="none"; addListener(grabber,nodes_to_resize); insertAfter(prev,grabber); for (var i = 0; i < nodes_to_resize.length; ++ i) { madeResizeable[nodes_to_resize[i]] = true; } madeResizeable[grabber] = true; } } function makeAllResizeable(nodes) { for (var i = 0; i < nodes.length; ++ i) { makeResizeable(nodes[i]); } } GM_registerMenuCommand("Make Embeds Resizable", function() { makeAllResizeable(document.getElementsByTagName("embed")); makeAllResizeable(document.getElementsByTagName("object")); makeAllResizeable(document.getElementsByTagName("textarea")); }, undefined, undefined, "R");
Отредактировано iDev.Pi (18-08-2012 01:43:09)
mzfx
Отсутствует
Букмарклет можно взять здесь.
Отсутствует