<?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>蓝色的华 &#187; eval</title>
	<atom:link href="http://bluehua.org/tag/eval/feed" rel="self" type="application/rss+xml" />
	<link>http://bluehua.org</link>
	<description>分享所学,backup一切~</description>
	<lastBuildDate>Fri, 13 Apr 2012 14:08:46 +0000</lastBuildDate>
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
	<generator>http://wordpress.org/?v=3.3.2</generator>
		<item>
		<title>执行ajax返回代码中的脚本，支持document.write</title>
		<link>http://bluehua.org/2009/07/14/325.html</link>
		<comments>http://bluehua.org/2009/07/14/325.html#comments</comments>
		<pubDate>Tue, 14 Jul 2009 12:24:37 +0000</pubDate>
		<dc:creator>冥王星2011</dc:creator>
				<category><![CDATA[web dev]]></category>
		<category><![CDATA[eval]]></category>
		<category><![CDATA[javascript]]></category>

		<guid isPermaLink="false">http://bluehua.org/?p=325</guid>
		<description><![CDATA[恩，有个产品要速度改版，改用ajax实现分页，可是页面中有很多内联脚本，求技术改比较慢，于是采用了最速都的方法：返回内容之后，把html塞到对应的层里，然后手动eval一下脚本。 这里有点小困难的就是脚本里面有document.write&#8230;。不过李宁叔叔说过&#8230; demo: 支持返回代码中的内联或者外联的脚本 http://bluehua.org/demo/eval_inner_html/ 原理是这样滴： 执行这些代码之前先把document.write改成自己的函数，用来收集输出的字符串 var _write = document.write; &#160; document.write = function&#40; str &#41; &#123; _inner_js.push&#40; str &#41;; &#125; 执行返回html中的脚本之后将document.write输出的代码添加到script标签的位置 var tmp = document.createDocumentFragment&#40;&#41;; appendHTML&#40; tmp, _inner_js.join&#40; '' &#41; &#41;; s.parentNode.insertBefore&#40; tmp, s &#41;;]]></description>
			<content:encoded><![CDATA[<p>恩，有个产品要速度改版，改用ajax实现分页，可是页面中有很多内联脚本，求技术改比较慢，于是采用了最速都的方法：返回内容之后，把html塞到对应的层里，然后手动eval一下脚本。</p>
<p>这里有点小困难的就是脚本里面有document.write&#8230;。不过李宁叔叔说过&#8230;</p>
<p>demo:<br />
支持返回代码中的内联或者外联的脚本<br />
<a href="http://bluehua.org/demo/eval_inner_html/" target="_blank">http://bluehua.org/demo/eval_inner_html/</a></p>
<p>原理是这样滴：<br />
执行这些代码之前先把document.write改成自己的函数，用来收集输出的字符串</p>

<div class="wp_syntax"><div class="code overflow"><pre class="javascript" style="font-family:monospace;"><span style="color: #003366; font-weight: bold;">var</span> _write <span style="color: #339933;">=</span> document.<span style="color: #000066; font-weight: bold;">write</span><span style="color: #339933;">;</span>
&nbsp;
document.<span style="color: #000066; font-weight: bold;">write</span> <span style="color: #339933;">=</span> <span style="color: #003366; font-weight: bold;">function</span><span style="color: #009900;">&#40;</span> str <span style="color: #009900;">&#41;</span>
<span style="color: #009900;">&#123;</span>
    _inner_js.<span style="color: #660066;">push</span><span style="color: #009900;">&#40;</span> str <span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
<span style="color: #009900;">&#125;</span></pre></div></div>

<p>执行返回html中的脚本之后将document.write输出的代码添加到script标签的位置</p>

<div class="wp_syntax"><div class="code overflow"><pre class="javascript" style="font-family:monospace;"><span style="color: #003366; font-weight: bold;">var</span> tmp <span style="color: #339933;">=</span> document.<span style="color: #660066;">createDocumentFragment</span><span style="color: #009900;">&#40;</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
appendHTML<span style="color: #009900;">&#40;</span> tmp<span style="color: #339933;">,</span>  _inner_js.<span style="color: #660066;">join</span><span style="color: #009900;">&#40;</span> <span style="color: #3366CC;">''</span> <span style="color: #009900;">&#41;</span> <span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
s.<span style="color: #660066;">parentNode</span>.<span style="color: #660066;">insertBefore</span><span style="color: #009900;">&#40;</span> tmp<span style="color: #339933;">,</span> s <span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span></pre></div></div>

]]></content:encoded>
			<wfw:commentRss>http://bluehua.org/2009/07/14/325.html/feed</wfw:commentRss>
		<slash:comments>2</slash:comments>
		</item>
	</channel>
</rss>

<!-- Dynamic page generated in 0.313 seconds. -->
<!-- Cached page generated by WP-Super-Cache on 2012-05-22 08:37:02 -->

