﻿<?xml version="1.0" encoding="utf-8" standalone="yes"?><rss version="2.0" xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:trackback="http://madskills.com/public/xml/rss/module/trackback/" xmlns:wfw="http://wellformedweb.org/CommentAPI/" xmlns:slash="http://purl.org/rss/1.0/modules/slash/"><channel><title>BlogJava-桢知卓见-文章分类-javascript</title><link>http://www.blogjava.net/jalion/category/23702.html</link><description /><language>zh-cn</language><lastBuildDate>Mon, 16 Jul 2007 10:55:12 GMT</lastBuildDate><pubDate>Mon, 16 Jul 2007 10:55:12 GMT</pubDate><ttl>60</ttl><item><title>使用setTimeout 传递参数的问题（转贴收藏）</title><link>http://www.blogjava.net/jalion/articles/127364.html</link><dc:creator>李桢</dc:creator><author>李桢</author><pubDate>Sun, 01 Jul 2007 08:04:00 GMT</pubDate><guid>http://www.blogjava.net/jalion/articles/127364.html</guid><wfw:comment>http://www.blogjava.net/jalion/comments/127364.html</wfw:comment><comments>http://www.blogjava.net/jalion/articles/127364.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.blogjava.net/jalion/comments/commentRss/127364.html</wfw:commentRss><trackback:ping>http://www.blogjava.net/jalion/services/trackbacks/127364.html</trackback:ping><description><![CDATA[<span id=ArticleContent1_ArticleContent1_lblContent>&nbsp;
<p><font face=Tahoma>也许你过去在setTimeout中传参数一直是这样</font></p>
<p><font face=Tahoma>setTimeout("pass(" + argu + ")",1000)</font></p>
<p><font face=Tahoma>这样只能传字符串,对传递object就无能为力了,需要大费文章.然而别忘了,第一个参数还可以是function!!!</font></p>
<p><font face=Tahoma>看以下代码实现向里面的function 传参数</font></p>
<p><font face=Tahoma>&lt;script type="text/javascript"&gt;<br>var _st = window.setTimeout;<br>window.setTimeout = function(fRef, mDelay) {<br>&nbsp;if(typeof fRef == 'function'){<br>&nbsp;&nbsp;var argu = Array.prototype.slice.call(arguments,2);<br>&nbsp;&nbsp;var f = (function(){ fRef.apply(null, argu); });<br>&nbsp;&nbsp;return _st(f, mDelay);<br>&nbsp;}<br>&nbsp;return _st(fRef,mDelay);<br>}</font></p>
<p><font face=Tahoma>function test(x){<br>&nbsp;alert(x);<br>}<br>window.setTimeout(test,1000,'fason');<br>&lt;/script&gt;</font></p>
<font face=Tahoma>
<p><font face=Tahoma>怎样?是不是很方便了?代码其实就很简单,重载了一下window.setTimeout,用apply去回调前面的function.</font></p>
</font></span>
<img src ="http://www.blogjava.net/jalion/aggbug/127364.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.blogjava.net/jalion/" target="_blank">李桢</a> 2007-07-01 16:04 <a href="http://www.blogjava.net/jalion/articles/127364.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>网页嵌入视频加密及加密保护</title><link>http://www.blogjava.net/jalion/articles/127335.html</link><dc:creator>李桢</dc:creator><author>李桢</author><pubDate>Sun, 01 Jul 2007 02:34:00 GMT</pubDate><guid>http://www.blogjava.net/jalion/articles/127335.html</guid><wfw:comment>http://www.blogjava.net/jalion/comments/127335.html</wfw:comment><comments>http://www.blogjava.net/jalion/articles/127335.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.blogjava.net/jalion/comments/commentRss/127335.html</wfw:commentRss><trackback:ping>http://www.blogjava.net/jalion/services/trackbacks/127335.html</trackback:ping><description><![CDATA[<p>最近由于需要对网页视频（直播）加密（主要是对视频流地址保护），做了一个简单的应用。</p>
<p>记得曾经看过用了asp动态生成脚本文件来隐藏网页内容，我想JSP也可以吧，所以我一开始就想到也用这种方式来加密。但浪费了我一下午的时间，也没整出个类似的方法。脚本倒是动态生成了，但出错的原因是<font color=#ff0000><strong>：&lt;script src="b.jsp"&gt;&lt;/script&gt;，</strong></font><font color=#000000>只要src引用的不是.js语法就通不过！无奈，我只好用&lt;iframe&gt;嵌入网页来实现了。</font>首页: index.jsp</p>
<p><font color=#ff0000>&nbsp;&nbsp; &lt;body&gt;<br>&lt;noscript&gt;<br>&lt;iframe src="index.jsp"&gt;&lt;/iframe&gt;<br>&nbsp; &lt;/noscript&gt;&nbsp;&nbsp;<font color=#000000>&nbsp;//加入noscript防止用户将页面&#8221;另存为&#8220;</font><br>&nbsp; &lt;iframe src="b.htm" height="400" width="352" frameborder="0" scrolling="no"&gt;&lt;/iframe&gt;<br>&nbsp; &lt;/body&gt;</font></p>
<p>b.htm中嵌入了视频播放器：</p>
<p><font color=#0000ff>//<font size=2>其中&lt;object&gt;标签和&lt;embed&gt;标签的嵌套使用是为解决IE与Netscape浏览器的兼容性问题。</font></font></p>
<p>&nbsp;<font color=#ff0000>&lt;OBJECT id=mediaplayer <br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; codeBase=http://activex.microsoft.com/activex/controls/mplayer/en/nsmp2inf.cab#version=6,4,7,1112 <br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; type=application/x-oleobject height=288 <br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; standby="loading microsoft windows media player components..." <br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; width=320 <br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; classid=clsid:22d6f312-b0f6-11d0-94ab-0080c74c7e95&gt;&lt;PARAM NAME="showstatusbar" VALUE="1"&gt;&lt;PARAM NAME="filename" VALUE="<font color=#0000ff>视频流地址</font>"&gt;&lt;PARAM NAME="autostart" VALUE="1"&gt;&lt;PARAM NAME="showcontrols" VALUE="1"&gt;&lt;PARAM NAME="windowlessvideo" VALUE="1"&gt;<br>&lt;param name="EnableContextMenu" value="0"&gt;</font></p>
<p><font color=#ff0000>&lt;embed <br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; type="application/x-mplayer2"&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; pluginspage="</font><a href="http://www.microsoft.com/windows/windowsmedia/download/"><font color=#ff0000><u>http://www.microsoft.com/windows/windowsmedia/download/</u></font></a><font color=#ff0000>"&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; filename="<font color=#0000ff>视频流地址</font>" <br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; autostart=1 EnableFullScreenControls=0&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; ShowControls=1 ShowDisplay=0 ShowStatusBar=1 width="352" <br>&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; height="288"&gt;&nbsp;&nbsp;&nbsp; &lt;/embed&gt;&nbsp; &lt;/OBJECT&gt;</font></p>
<p>做完以上两步以后你可以浏览一下，当查看index.jsp源代码时，你看到的只是"b.htm",但是你如果直接请求b.htm的话还是能看到视频流的地址。我们现在要做的最后一步是在b.htm中判断源页面，采用javascript就OK了以下是代码：</p>
<p><font color=#ff0000>&lt;script type="text/javascript"&gt;<br>var tt=document.referrer;<br>var temp=tt.substring(tt.lastIndexOf("/")+1,tt.length);<br>if(temp!="index.jsp")<br>document.location="错误页面";<br>&lt;/script&gt;</font></p>
<p><font color=#000000>将以上代码加入b.htm的head中，当用户直接请求时，此段代码直接将转到错误页面</font></p>
<p><font color=#00ff00>/***********************************************************/</font></p>
<p><font color=#00ff00>11.27修改</font></p>
<p><font color=#00ff00>经过今天晚上测试,</font><font color=#ff00cc>发现了上述错误的原因:当我用jsp生成页面时,我用EC直接生成的JSP页面,</font></p>
<p><font color=#ff00cc>带有头文件信息等,生成的页面当然带&lt;head&gt;等啦,放进&lt;...&nbsp; src="a.jsp"&gt;中肯定编译不过的,</font></p>
<p><font color=#ff00cc>解决方案就是:在JSP页面(a.jsp)中之写&lt;% out.println("document.write('asd');");%&gt;</font></p>
<p><font color=#ff00cc>这样当在另一jsp中引用&lt;script src="a.jsp"&gt;,请求时,直接显示的是asd;</font></p>
<p><font color=#0000ff>注意问题:当out.println("document.write('&lt;script&gt;'");时,应该用转义字符&amp;lt;因为碰到&lt;script&gt;的话,浏览器直接就解释执行了写成out.println("document.write('&amp;lt;script&gt;'");</font></p>
<img src ="http://www.blogjava.net/jalion/aggbug/127335.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.blogjava.net/jalion/" target="_blank">李桢</a> 2007-07-01 10:34 <a href="http://www.blogjava.net/jalion/articles/127335.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>在线编辑器之一   ：判断浏览器版本</title><link>http://www.blogjava.net/jalion/articles/127334.html</link><dc:creator>李桢</dc:creator><author>李桢</author><pubDate>Sun, 01 Jul 2007 02:33:00 GMT</pubDate><guid>http://www.blogjava.net/jalion/articles/127334.html</guid><wfw:comment>http://www.blogjava.net/jalion/comments/127334.html</wfw:comment><comments>http://www.blogjava.net/jalion/articles/127334.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.blogjava.net/jalion/comments/commentRss/127334.html</wfw:commentRss><trackback:ping>http://www.blogjava.net/jalion/services/trackbacks/127334.html</trackback:ping><description><![CDATA[<p>打算写一个在线编辑器，今天就开始吧，想到什么函数写什么。现在浏览器市场不统一，各家都想一统天下，所以对标签，脚本的支持各尽同。为了兼容，第一步就是得兼容各个版本的浏览器。</p>
<p>判断浏览版本</p>
<p><font color=#ff0000>&nbsp;function getBrowser()<br>&nbsp;&nbsp;{<br>&nbsp;&nbsp;&nbsp;var browser;<br>&nbsp;&nbsp;&nbsp;var agent = navigator.userAgent.toLowerCase();<br>&nbsp;&nbsp;&nbsp;if (agent.indexOf("msie") &gt; -1) {<br>&nbsp;&nbsp;&nbsp;&nbsp;var re = new RegExp("msie\\s?([\\d\\.]+)","ig");<br>&nbsp;&nbsp;&nbsp;&nbsp;var arr = re.exec(agent);<br>&nbsp;&nbsp;&nbsp;&nbsp;if (parseInt(RegExp.$1) &gt;= 5.5) {<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;browser = 'IE';<br>&nbsp;&nbsp;&nbsp;&nbsp;}<br>&nbsp;&nbsp;&nbsp;} else if (agent.indexOf("firefox") &gt; -1) {<br>&nbsp;&nbsp;&nbsp;&nbsp;browser = 'Firefox';<br>&nbsp;&nbsp;&nbsp;} else if (agent.indexOf("netscape") &gt; -1) {<br>&nbsp;&nbsp;&nbsp;&nbsp;var temp1 = agent.split(' ');<br>&nbsp;&nbsp;&nbsp;&nbsp;var temp2 = temp1[temp1.length-1].split('/');<br>&nbsp;&nbsp;&nbsp;&nbsp;if (parseInt(temp2[1]) &gt;= 7) {<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;browser = 'NetScape';<br>&nbsp;&nbsp;&nbsp;&nbsp;}<br>&nbsp;&nbsp;&nbsp;} else if (agent.indexOf("gecko") &gt; -1) {<br>&nbsp;&nbsp;&nbsp;&nbsp;browser = 'ML';<br>&nbsp;&nbsp;&nbsp;} else if (agent.indexOf("opera") &gt; -1) {<br>&nbsp;&nbsp;&nbsp;&nbsp;var temp1 = agent.split(' ');<br>&nbsp;&nbsp;&nbsp;&nbsp;var temp2 = temp1[0].split('/');<br>&nbsp;&nbsp;&nbsp;&nbsp;if (parseInt(temp2[1]) &gt;= 9) {<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;browser = 'OPERA';<br>&nbsp;&nbsp;&nbsp;&nbsp;}<br>&nbsp;}<br>&nbsp;return browser;<br>}</font></p>
<img src ="http://www.blogjava.net/jalion/aggbug/127334.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.blogjava.net/jalion/" target="_blank">李桢</a> 2007-07-01 10:33 <a href="http://www.blogjava.net/jalion/articles/127334.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item></channel></rss>