<?xml version="1.0" encoding="UTF-8"?><rss version="2.0"
	xmlns:content="http://purl.org/rss/1.0/modules/content/"
	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/"
		>
<channel>
	<title>Comments on: XMLHttpRequest模拟表单上传文件</title>
	<atom:link href="http://shellex.info/simulate-form-post-to-upload-file-using-xmlhttpreques/feed/" rel="self" type="application/rss+xml" />
	<link>http://shellex.info/simulate-form-post-to-upload-file-using-xmlhttpreques/</link>
	<description>Hola, 欢迎来到shellex的部落格</description>
	<lastBuildDate>Mon, 06 Sep 2010 00:15:35 +0000</lastBuildDate>
	<generator>http://wordpress.org/?v=2.9.2</generator>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
		<item>
		<title>By: 华华</title>
		<link>http://shellex.info/simulate-form-post-to-upload-file-using-xmlhttpreques/comment-page-1/#comment-736</link>
		<dc:creator>华华</dc:creator>
		<pubDate>Fri, 21 Nov 2008 16:38:19 +0000</pubDate>
		<guid isPermaLink="false">http://shellex.info/?p=344#comment-736</guid>
		<description>这行 firefox 地址栏 js 语句，是利用跨域将页面所有图片转为 base64 编码内联图像（本地硬盘、跨域网站等）


		javascript:&#160;&#160;&#160;&#160;&#160;&#160;&#160; var keyStr = &quot;ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/=&quot;;&#160;&#160;&#160;&#160;&#160;&#160;&#160; function encode64(input) {&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160; var output = &quot;&quot;;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160; var chr1, chr2, chr3;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160; var enc1, enc2, enc3, enc4;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160; var i = 0;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160; do {&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160; chr1 = input.charCodeAt(i++) &amp; 0xff;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160; chr2 = input.charCodeAt(i++) &amp; 0xff;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160; chr3 = input.charCodeAt(i++) &amp; 0xff;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160; enc1 = chr1 &gt;&gt; 2;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160; enc2 = ((chr1 &amp; 3) &lt;&lt; 4) &#124; (chr2 &gt;&gt; 4);&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160; enc3 = ((chr2 &amp; 15) &lt;&lt; 2) &#124; (chr3 &gt;&gt; 6);&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160; enc4 = chr3 &amp; 63;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160; if (isNaN(chr2)) {&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160; enc3 = enc4 = 64;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160; } else if (isNaN(chr3)) {&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160; enc4 = 64;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160; }&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160; output = output + keyStr.charAt(enc1) + keyStr.charAt(enc2) + &#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160; keyStr.charAt(enc3) + keyStr.charAt(enc4);&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160; } while (i &lt; input.length);&#160;&#160; &#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160; return output;&#160;&#160;&#160;&#160;&#160;&#160;&#160; };&#160;&#160;&#160;&#160;&#160;&#160;&#160; netscape.security.PrivilegeManager.enablePrivilege(&quot;UniversalBrowserRead&quot;);&#160;&#160;&#160;&#160;&#160; &#160;&#160;&#160;&#160;&#160;&#160;&#160; for (var i=document.images.length-1; i+1; i--){&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160; img = document.images[i];&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160; if(img.src &amp;&amp; !img.src.match(/^data:/)){&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160; mx = new XMLHttpRequest();&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160; mx.open(&quot;GET&quot;, img.src, false);&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160; mx.overrideMimeType(&#039;text/plain; charset=x-user-defined&#039;);&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160; &#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160; mx.send(null);&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160; if (mx.responseText &amp;&amp; (mx.status==200 &#124;&#124; mx.status==0) ){&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160; img.setAttribute(&#039;uri&#039;, img.src);&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160; img.src = &quot;data:image;base64,&quot; + encode64(mx.responseText);&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160; };&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160; }&#160;&#160;&#160;&#160;&#160;&#160;&#160; };&#160;&#160;&#160;&#160;&#160;&#160;&#160; void 0;</description>
		<content:encoded><![CDATA[<p>这行 firefox 地址栏 js 语句，是利用跨域将页面所有图片转为 base64 编码内联图像（本地硬盘、跨域网站等）</p>
<p>		javascript:&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; var keyStr = &#8220;ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/=&#8221;;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; function encode64(input) {&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; var output = &#8220;&#8221;;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; var chr1, chr2, chr3;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; var enc1, enc2, enc3, enc4;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; var i = 0;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; do {&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; chr1 = input.charCodeAt(i++) &amp; 0xff;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; chr2 = input.charCodeAt(i++) &amp; 0xff;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; chr3 = input.charCodeAt(i++) &amp; 0xff;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; enc1 = chr1 &gt;&gt; 2;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; enc2 = ((chr1 &amp; 3) &lt;&lt; 4) | (chr2 &gt;&gt; 4);&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; enc3 = ((chr2 &amp; 15) &lt;&lt; 2) | (chr3 &gt;&gt; 6);&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; enc4 = chr3 &amp; 63;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; if (isNaN(chr2)) {&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; enc3 = enc4 = 64;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; } else if (isNaN(chr3)) {&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; enc4 = 64;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; }&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; output = output + keyStr.charAt(enc1) + keyStr.charAt(enc2) + &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; keyStr.charAt(enc3) + keyStr.charAt(enc4);&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; } while (i &lt; input.length);&nbsp;&nbsp; &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; return output;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; };&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; netscape.security.PrivilegeManager.enablePrivilege(&#8220;UniversalBrowserRead&#8221;);&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; for (var i=document.images.length-1; i+1; i&#8211;){&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; img = document.images[i];&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; if(img.src &amp;&amp; !img.src.match(/^data:/)){&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; mx = new XMLHttpRequest();&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; mx.open(&#8220;GET&#8221;, img.src, false);&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; mx.overrideMimeType(&#8216;text/plain; charset=x-user-defined&#8217;);&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; mx.send(null);&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; if (mx.responseText &amp;&amp; (mx.status==200 || mx.status==0) ){&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; img.setAttribute(&#8216;uri&#8217;, img.src);&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; img.src = &#8220;data:image;base64,&#8221; + encode64(mx.responseText);&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; };&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; }&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; };&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; void 0;</p>
]]></content:encoded>
	</item>
	<item>
		<title>By: 华华</title>
		<link>http://shellex.info/simulate-form-post-to-upload-file-using-xmlhttpreques/comment-page-1/#comment-735</link>
		<dc:creator>华华</dc:creator>
		<pubDate>Fri, 21 Nov 2008 16:36:04 +0000</pubDate>
		<guid isPermaLink="false">http://shellex.info/?p=344#comment-735</guid>
		<description>FireFox 跨域可以用 js 语句
 netscape.security.PrivilegeManager.enablePrivilege(&quot;UniversalBrowserRead&quot;);      
请求，
页面会弹出对话框询问用户是否允许</description>
		<content:encoded><![CDATA[<p>FireFox 跨域可以用 js 语句<br />
 netscape.security.PrivilegeManager.enablePrivilege(&#8220;UniversalBrowserRead&#8221;);<br />
请求，<br />
页面会弹出对话框询问用户是否允许</p>
]]></content:encoded>
	</item>
</channel>
</rss>
