<?xml version="1.0" encoding="UTF-8"?>
<rdf:RDF xmlns="http://purl.org/rss/1.0/" xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#" xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:content="http://purl.org/rss/1.0/modules/content/">
  <channel rdf:about="https://let.hatelabo.jp/d-kami/rss">
    <link>https://let.hatelabo.jp/d-kami/rss</link>
    <description></description>
    <title>Bookmarklets from d-kami</title>
    <items>
      <rdf:Seq>
        <rdf:li rdf:resource="https://let.hatelabo.jp/d-kami/let/gYC-xp6X5uKhdw"/>
      </rdf:Seq>
    </items>
  </channel>
  <item rdf:about="https://let.hatelabo.jp/d-kami/let/gYC-xp6X5uKhdw">
    <link>https://let.hatelabo.jp/d-kami/let/gYC-xp6X5uKhdw</link>
    <dc:date>2010-06-01T03:10:10Z</dc:date>
    <description>リンクやボタン、画像などをドラッグで移動できます。ただそれだけです。Firefox限定？動作不安定(うまくドラッグできなかったり、位置がおかしかったり)</description>
    <dc:creator>d-kami</dc:creator>
    <title>[Let] StrangeElement</title>
    <content:encoded>&lt;a href="javascript:%22https%3A%2F%2Flet.st-hatelabo.com%2Fd-kami%2Flet%2FgYC-xp6X5uKhdw.bookmarklet.js%20%28arg%29%22.replace%28%2F%28%5CS%2B%29%5Cs%2B%28%5CS%2A%29%2F%2Cfunction%28s%2Curl%2Carg%29%7Bs%3Ddocument.createElement%28%22script%22%29%3Bs.charset%3D%22utf-8%22%3Bs.src%3Durl%2B%22%3Fs%3D%22%2BencodeURIComponent%28arg%29%3Bdocument.body.appendChild%28s%29%7D%29%3Bvoid%280%29%3B"&gt;StrangeElement&lt;/a&gt;&lt;pre&gt;/*
 * @title StrangeElement
 * @description リンクやボタン、画像などをドラッグで移動できます。ただそれだけです。Firefox限定？動作不安定(うまくドラッグできなかったり、位置がおかしかったり)
 * @include http://*
 * @license MIT License
 * @require 
 */

(function(){
    var nodeNames = [&amp;quot;BODY&amp;quot;, &amp;quot;A&amp;quot;, &amp;quot;INPUT&amp;quot;, &amp;quot;IMG&amp;quot;, &amp;quot;SPAN&amp;quot;, &amp;quot;DIV&amp;quot;, &amp;quot;TEXTAREA&amp;quot;];

    var target = null;
    var oldBorder = &amp;quot;&amp;quot;;
    var mouseX = -1;
    var mouseY = -1;

    function addEvent(node){
        if(nodeCheck(node)){
            addClick(node);
            addMouseDown(node);
        }

        var children = node.childNodes;

        for(var i = 0; i &amp;lt; children.length; i++){
            addEvent(children[i]);
        }
    }

    function addClick(node){
        node.addEventListener(&amp;quot;click&amp;quot;, function(e){
            e.stopPropagation();
            e.preventDefault();            
        }, false);
    }

    function addMouseDown(node){
        node.addEventListener(&amp;quot;mousedown&amp;quot;, function(e){
            target = node;
            oldBorder = node.style.border;

            target.style.border = &amp;quot;solid 1px blue&amp;quot;;
            target.style.position = &amp;quot;absolute&amp;quot;;
            target.style.left = e.screenX + &amp;quot;px&amp;quot;;
            target.style.top = e.screenY + &amp;quot;px&amp;quot;;

            e.stopPropagation();
            e.preventDefault();
        }, false);
    }

    function addMouseMove(node){
        node.addEventListener(&amp;quot;mousemove&amp;quot;, function(e){
            if(target){
                target.style.left = e.clientX + &amp;quot;px&amp;quot;;
                target.style.top = e.clientY + &amp;quot;px&amp;quot;;

                e.stopPropagation();
                e.preventDefault();
            }
        }, false);
    }

    function addMouseUp(node){
        node.addEventListener(&amp;quot;mouseup&amp;quot;, function(e){
            mouseX = -1;
            target.style.border = oldBorder;
            target = null;

            e.stopPropagation();
            e.preventDefault();
        }, false);
    }

    function nodeCheck(node){
        for(var i = 0; i &amp;lt; nodeNames.length; i++){
            if(nodeNames[i] == node.nodeName){
                return true;
            }
        }

        return false;
    }

    document.getElementsByTagName(&amp;quot;HTML&amp;quot;)[0].style.position = &amp;quot;absolute&amp;quot;;
    addEvent(document);
    addMouseUp(document);
    addMouseMove(document);
})();&lt;/pre&gt;</content:encoded>
  </item>
</rdf:RDF>
