日期:2014-05-16  浏览次数:20450 次

对一段javascript的理解
最近使用网易的有道笔记的时候,发现它是通过在浏览器的收藏栏里面添加了一个链接,在浏览网页的时候,选择某段文字然后点击这个链接,就会把内容搜藏到有道笔记里面。这个链接的内容是一个js,内容如下:

javascript:(
function(){
CLIP_HOST='http://note.youdao.com/yws';
try{
var%20x=document.createElement('SCRIPT');
x.type='text/javascript';
x.src=CLIP_HOST+'/YNoteClipper.js?'+(new%20Date().getTime()/100000);
x.charset='utf-8';
document.getElementsByTagName('head')[0].appendChild(x);
}catch(e){
alert(e);
}
}
)();

个人觉得这个很神奇,想知道这是什么原理,工作流程是什么?

------解决方案--------------------
在地址栏执行该js脚本,效果相当于在页面中直接加入:

<head>
   <script src="http://note.youdao.com/yws/YNoteClipper.js?xxxxx"></script>
</head>
xxxx是时间戳,防止浏览器缓存
直接下载看 http://note.youdao.com/yws/YNoteClipper.js 的源代码即可 



------解决方案--------------------
嗯,这个很好理解
就是动态创建一个 script 并添加到 head 中

这种办法很有用的:
1 可用于跨域访问的方案
2 是 JSONP 技术的基础
3 用于延迟加载和按需加载
……

能兼容所有浏览器