<?xml version="1.0" encoding="UTF-8"?><rss version="2.0"
	xmlns:content="http://purl.org/rss/1.0/modules/content/"
	xmlns:wfw="http://wellformedweb.org/CommentAPI/"
	xmlns:dc="http://purl.org/dc/elements/1.1/"
	xmlns:atom="http://www.w3.org/2005/Atom"
	xmlns:sy="http://purl.org/rss/1.0/modules/syndication/"
	xmlns:slash="http://purl.org/rss/1.0/modules/slash/"
	>

<channel>
	<title>GeneralThreat.com &#187; bookmarklet</title>
	<atom:link href="http://www.generalthreat.com/tag/bookmarklet/feed/" rel="self" type="application/rss+xml" />
	<link>http://www.generalthreat.com</link>
	<description>Dangerously different projects and code</description>
	<lastBuildDate>Sun, 19 Jan 2014 20:00:34 +0000</lastBuildDate>
	<language>en-US</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
	<generator>https://wordpress.org/?v=4.2.38</generator>
	<item>
		<title>email me</title>
		<link>http://www.generalthreat.com/projects/email-me/</link>
		<comments>http://www.generalthreat.com/projects/email-me/#comments</comments>
		<pubDate>Mon, 01 Sep 2008 05:05:48 +0000</pubDate>
		<dc:creator><![CDATA[David]]></dc:creator>
				<category><![CDATA[Projects]]></category>
		<category><![CDATA[bookmarklet]]></category>
		<category><![CDATA[iPhone]]></category>
		<category><![CDATA[javascript]]></category>
		<category><![CDATA[projects]]></category>

		<guid isPermaLink="false">http://www.generalthreat.com/?page_id=9</guid>
		<description><![CDATA[A rudimentary copy-and-paste bookmarklet for iPhone]]></description>
				<content:encoded><![CDATA[<p><div class='postTabs_divs postTabs_curr_div' id='postTabs_0_9'>
<span class='postTabs_titles'><b>About</b></span></p>
<h3>What is it?</h3>
<p>A bookmarklet for the iPhone that delivers rudimentary copy and paste functionality. Data is stored in <a href="http://ajaxian.com/archives/whats-in-a-windowname">window.name</a>, so the usual security caveats apply.</p>
<p>This is primarily a proof of concept for working with <a href="http://www.sitepen.com/blog/2008/07/10/touching-and-gesturing-on-the-iphone/">iPhone-specific event handlers</a>, and is presented with that goal in mind. A few liberties have been taken with JavaScript syntax since there is a single platform in play and every character counts.</p>
<p>The necessary style sheet is included via a data URI. This turned out to be a nice way to avoid any server-side dependencies.</p>
<h3>How is it used?</h3>
<p>Hold down with one finger on the screen to pop up the context menu, which will vary depending on the status of the window.name variable. An additional option is exposed if you hold down over a paragraph (must be a real paragraph with a &lt;P&gt; tag). See line 55 of the source.</p>
<p></div>

<div class='postTabs_divs' id='postTabs_1_9'>
<span class='postTabs_titles'><b>Source</b></span></p>
<p>Here is an uncondensed version for your perusal.</p>

<div class="wp_syntax"><table><tr><td class="code"><pre class="javascript" style="font-family:monospace;">javascript<span style="color: #339933;">:</span>
mD<span style="color: #339933;">=</span><span style="color: #003366; font-weight: bold;">false</span><span style="color: #339933;">;</span>
d<span style="color: #339933;">=</span>document<span style="color: #339933;">;</span>
cT<span style="color: #339933;">=</span><span style="color: #000066; font-weight: bold;">function</span><span style="color: #009900;">&#40;</span><span style="color: #009900;">&#41;</span><span style="color: #009900;">&#123;</span>
  clearTimeout<span style="color: #009900;">&#40;</span>mD<span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
<span style="color: #009900;">&#125;</span>
<span style="color: #339933;">;</span>
data<span style="color: #339933;">=</span><span style="color: #009900;">&#123;</span>
  url<span style="color: #339933;">:</span><span style="color: #3366CC;">''</span><span style="color: #339933;">,</span>text<span style="color: #339933;">:</span><span style="color: #3366CC;">''</span>
<span style="color: #009900;">&#125;</span>
<span style="color: #339933;">;</span>
d.<span style="color: #660066;">ontouchstart</span><span style="color: #339933;">=</span><span style="color: #000066; font-weight: bold;">function</span><span style="color: #009900;">&#40;</span>ev<span style="color: #009900;">&#41;</span><span style="color: #009900;">&#123;</span>
  t<span style="color: #339933;">=</span>ev.<span style="color: #660066;">touches</span><span style="color: #009900;">&#91;</span><span style="color: #CC0000;">0</span><span style="color: #009900;">&#93;</span>.<span style="color: #660066;">target</span><span style="color: #339933;">;</span>
  <span style="color: #000066; font-weight: bold;">if</span><span style="color: #009900;">&#40;</span>t.<span style="color: #660066;">id</span><span style="color: #339933;">!=</span><span style="color: #3366CC;">'contextMenu'</span><span style="color: #339933;">&amp;</span>amp<span style="color: #339933;">;&amp;</span>amp<span style="color: #339933;">;</span><span style="color: #009900;">&#40;</span>t.<span style="color: #660066;">nodeName</span><span style="color: #339933;">!=</span><span style="color: #3366CC;">'A'</span><span style="color: #339933;">&amp;</span>amp<span style="color: #339933;">;&amp;</span>amp<span style="color: #339933;">;</span>t.<span style="color: #660066;">parentNode</span>.<span style="color: #660066;">nodeName</span><span style="color: #339933;">!=</span><span style="color: #3366CC;">'A'</span><span style="color: #009900;">&#41;</span><span style="color: #009900;">&#41;</span><span style="color: #009900;">&#123;</span>
    rCM<span style="color: #009900;">&#40;</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
    mD<span style="color: #339933;">=</span>setTimeout<span style="color: #009900;">&#40;</span>sCM<span style="color: #339933;">,</span><span style="color: #CC0000;">500</span><span style="color: #339933;">,</span>ev<span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
    d.<span style="color: #660066;">ontouchmove</span><span style="color: #339933;">=</span>cT<span style="color: #339933;">;</span>
  <span style="color: #009900;">&#125;</span>
<span style="color: #009900;">&#125;</span>
<span style="color: #339933;">;</span>
d.<span style="color: #660066;">ontouchend</span><span style="color: #339933;">=</span>cT<span style="color: #339933;">;</span>
rCM<span style="color: #339933;">=</span><span style="color: #000066; font-weight: bold;">function</span><span style="color: #009900;">&#40;</span><span style="color: #009900;">&#41;</span><span style="color: #009900;">&#123;</span>
  <span style="color: #000066; font-weight: bold;">if</span><span style="color: #009900;">&#40;</span>cM<span style="color: #339933;">=</span>d.<span style="color: #660066;">getElementById</span><span style="color: #009900;">&#40;</span><span style="color: #3366CC;">'contextMenu'</span><span style="color: #009900;">&#41;</span><span style="color: #009900;">&#41;</span><span style="color: #009900;">&#123;</span>
    cM.<span style="color: #660066;">parentNode</span>.<span style="color: #660066;">removeChild</span><span style="color: #009900;">&#40;</span>cM<span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
  <span style="color: #009900;">&#125;</span>
<span style="color: #009900;">&#125;</span>
<span style="color: #339933;">;</span>
rP<span style="color: #339933;">=</span><span style="color: #000066; font-weight: bold;">function</span><span style="color: #009900;">&#40;</span>ev<span style="color: #009900;">&#41;</span><span style="color: #009900;">&#123;</span>
  ps<span style="color: #339933;">=</span>d.<span style="color: #660066;">getElementsByTagName</span><span style="color: #009900;">&#40;</span><span style="color: #3366CC;">'textarea'</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
  <span style="color: #000066; font-weight: bold;">for</span><span style="color: #009900;">&#40;</span><span style="color: #000066; font-weight: bold;">var</span> i<span style="color: #339933;">=</span><span style="color: #CC0000;">0</span><span style="color: #339933;">;</span>i
<span style="color: #CC0000;">150</span><span style="color: #339933;">?</span><span style="color: #009900;">&#40;</span>t.<span style="color: #660066;">pageY</span><span style="color: #339933;">-</span><span style="color: #CC0000;">150</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">:</span><span style="color: #CC0000;">0</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">+</span><span style="color: #3366CC;">'px'</span><span style="color: #339933;">;</span>
  cM.<span style="color: #660066;">style</span>.<span style="color: #660066;">left</span><span style="color: #339933;">=</span><span style="color: #009900;">&#40;</span>t.<span style="color: #660066;">pageX</span><span style="color: #339933;">&amp;</span>gt<span style="color: #339933;">;</span><span style="color: #CC0000;">150</span><span style="color: #339933;">?</span><span style="color: #009900;">&#40;</span>t.<span style="color: #660066;">pageX</span><span style="color: #339933;">-</span><span style="color: #CC0000;">150</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">:</span><span style="color: #CC0000;">0</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">+</span><span style="color: #3366CC;">'px'</span><span style="color: #339933;">;</span>
  cM.<span style="color: #660066;">style</span>.<span style="color: #660066;">display</span><span style="color: #339933;">=</span><span style="color: #3366CC;">'none'</span><span style="color: #339933;">;</span>
  <span style="color: #000066; font-weight: bold;">if</span><span style="color: #009900;">&#40;</span>window.<span style="color: #660066;">name</span><span style="color: #339933;">!=</span><span style="color: #3366CC;">''</span><span style="color: #009900;">&#41;</span><span style="color: #009900;">&#123;</span>
    html<span style="color: #339933;">=</span>unescape<span style="color: #009900;">&#40;</span><span style="color: #3366CC;">'%3Cli%3E%3Ca href=%22#paste%22 onclick=%22rP();rCM();return false;%22%3EP%3C/a%3E%3C/li%3E%3Cli%3E%3Ca href=%22mailto:friend?subject=Web Link&amp;amp;body='</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">+</span>window.<span style="color: #660066;">name</span><span style="color: #339933;">+</span>unescape<span style="color: #009900;">&#40;</span><span style="color: #3366CC;">'%22%3EE%3C/a%3E%3C/li%3E%3Cli%3E%3Ca href=%22#clear%22 onclick=%22window.name=<span style="color: #000099; font-weight: bold;">\'</span><span style="color: #000099; font-weight: bold;">\'</span>;rCM();return false;%22%3EC%3C/a%3E%3C/li%3E'</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
  <span style="color: #009900;">&#125;</span>
  <span style="color: #000066; font-weight: bold;">else</span><span style="color: #009900;">&#123;</span>
    html<span style="color: #339933;">=</span>unescape<span style="color: #009900;">&#40;</span><span style="color: #3366CC;">'%3Cli%3E%3Ca onclick=%22window.name=data.url;%22%3EURI%3C/a%3E%3C/li%3E'</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
    data.<span style="color: #660066;">url</span><span style="color: #339933;">=</span>escape<span style="color: #009900;">&#40;</span>location.<span style="color: #660066;">href</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
    <span style="color: #000066; font-weight: bold;">if</span><span style="color: #009900;">&#40;</span>tt.<span style="color: #660066;">nodeName</span><span style="color: #339933;">==</span><span style="color: #3366CC;">'#text'</span><span style="color: #339933;">&amp;</span>amp<span style="color: #339933;">;&amp;</span>amp<span style="color: #339933;">;</span>tt.<span style="color: #660066;">parentNode</span>.<span style="color: #660066;">nodeName</span><span style="color: #339933;">==</span><span style="color: #3366CC;">'P'</span><span style="color: #009900;">&#41;</span><span style="color: #009900;">&#123;</span>
      html<span style="color: #339933;">+=</span>unescape<span style="color: #009900;">&#40;</span><span style="color: #3366CC;">'%3Cli%3E%3Ca onclick=%22window.name=data.text;%22%3E¶%3C/a%3E%3C/li%3E'</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
      data.<span style="color: #660066;">text</span><span style="color: #339933;">=</span>escape<span style="color: #009900;">&#40;</span>tt.<span style="color: #660066;">parentNode</span>.<span style="color: #660066;">innerHTML</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">+</span><span style="color: #3366CC;">' from: '</span><span style="color: #339933;">+</span>location.<span style="color: #660066;">href</span><span style="color: #339933;">;</span>
    <span style="color: #009900;">&#125;</span>
  <span style="color: #009900;">&#125;</span>
  cM.<span style="color: #660066;">innerHTML</span><span style="color: #339933;">=</span>html<span style="color: #339933;">;</span>
  d.<span style="color: #660066;">body</span>.<span style="color: #660066;">appendChild</span><span style="color: #009900;">&#40;</span>cM<span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
  cM.<span style="color: #660066;">style</span>.<span style="color: #660066;">display</span><span style="color: #339933;">=</span><span style="color: #3366CC;">'block'</span><span style="color: #339933;">;</span>
<span style="color: #009900;">&#125;</span>
<span style="color: #339933;">;</span>
init<span style="color: #339933;">=</span><span style="color: #000066; font-weight: bold;">function</span><span style="color: #009900;">&#40;</span><span style="color: #009900;">&#41;</span><span style="color: #009900;">&#123;</span>
  css<span style="color: #339933;">=</span>d.<span style="color: #660066;">createElement</span><span style="color: #009900;">&#40;</span><span style="color: #3366CC;">'link'</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
  css.<span style="color: #660066;">type</span><span style="color: #339933;">=</span><span style="color: #3366CC;">'text/css'</span><span style="color: #339933;">;</span>
  css.<span style="color: #660066;">rel</span><span style="color: #339933;">=</span><span style="color: #3366CC;">'stylesheet'</span><span style="color: #339933;">;</span>
  css.<span style="color: #660066;">href</span><span style="color: #339933;">=</span><span style="color: #3366CC;">'data:text/css;base64,I2NvbnRleHRNZW51IHtsaXN0LXN0eWxlLXR5cGU6IG5vbmU7cG9zaXRpb246IGFic29sdXRlO29wYWNpdHk6IDAuODttYXJnaW46IDA7cGFkZGluZzogMTBweDtiYWNrZ3JvdW5kLWNvbG9yOiAjNmY4NmEzO3dpZHRoOiAyNSU7aGVpZ2h0OiAyNSU7Zm9udC1mYW1pbHk6IFwiTHVjaWRhIEdyYW5kZVwiLHNhbnMtc2VyaWY7fQ0KI2NvbnRleHRNZW51IGxpIHtmbG9hdDogbGVmdDt9DQojY29udGV4dE1lbnUgYSB7ZGlzcGxheTogYmxvY2s7dGV4dC1hbGlnbjogY2VudGVyO3RleHQtZGVjb3JhdGlvbjogbm9uZTtmb250LXNpemU6IDNlbTttaW4td2lkdGg6IDFlbTtwYWRkaW5nOiAxMHB4O2JvcmRlcjogMXB4IHNvbGlkICNjY2M7Y29sb3I6ICNmZmY7fQ0KI2NvbnRleHRNZW51IGE6aG92ZXIge2JvcmRlci1jb2xvcjogI2ZmZjt9'</span><span style="color: #339933;">;</span>
  d.<span style="color: #660066;">getElementsByTagName</span><span style="color: #009900;">&#40;</span><span style="color: #3366CC;">'head'</span><span style="color: #009900;">&#41;</span><span style="color: #009900;">&#91;</span><span style="color: #CC0000;">0</span><span style="color: #009900;">&#93;</span>.<span style="color: #660066;">appendChild</span><span style="color: #009900;">&#40;</span>css<span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
<span style="color: #009900;">&#125;</span>
<span style="color: #339933;">;</span>
init<span style="color: #009900;">&#40;</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span></pre></td></tr></table></div>

<p></div>

</p>
]]></content:encoded>
			<wfw:commentRss>http://www.generalthreat.com/projects/email-me/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
	</channel>
</rss>

<!-- Performance optimized by W3 Total Cache. Learn more: http://www.w3-edge.com/wordpress-plugins/

Page Caching using disk: enhanced

 Served from: www.generalthreat.com @ 2026-06-09 04:01:19 by W3 Total Cache -->