试图弄清楚这个JavaScript书签

时间:2011-03-22 06:26:04

标签: javascript

我是一个JavaScript /编程新手试图弄清楚已经发布的新书签,以帮助克服新的纽约时报付费墙,可以在这个博客上找到http://euri.ca/2011/03/21/get-around-new-york-times-20-article-limit/

它只有以下3行JavaScript ......

 //Prototype is already installed on NYTimes pages, so I'll use that:
    $('overlay').hide();
    $('gatewayCreative').hide();
    $(document.body).setStyle( { overflow:'scroll' } );

所以我认为学习JavaScript的实际用途并不是一种过于复杂的方法

当我点击实际书签的源代码时,它显示了这个

<a href="javascript:(function() {var s=document.createElement('script');s.setAttribute('src','http://toys.euri.ca/nyt.js');document.getElementsByTagName('head')[0].appendChild(s);})();" class="supercoolbutton">NYTClean</a>

以上三行JavaScript位于'http://toys.euri.ca/nyt.js'

我的问题是

a)当他说Prototype已经安装在NYTimes页面上时,他指的是Prototype库,所以他的代码只是在改变他们对库的作用吗?

b)在bookmarklet的源代码中document.getElementsByTagName('head')[0].appendChild(s);})();" document是否会引用读者所在的纽约时报页面?并且'head'指的是NYTimes主页中的一个元素,他将孩子附加到该主页上?

c)是包含在链接中的bookmarklet的源代码,因此appendChild(s)仅在您单击链接/书签时发生。书签本质上是一个运行代码的链接吗?

d)您是否知道有哪些资源可以解释如何制作可以从网页拖动到书签栏的实际书签?那个拖动到书签栏的功能显然与它所包含的代码是分开的,所以如果我想创建自己的书签来试验JavaScript,你知道我可以在哪里学习它。

1 个答案:

答案 0 :(得分:2)

a)是的,他指的是Prototype javascript library

b&amp; c)bookmarklets的工作方式是通过使用“javascript:”协议在给定网站的上下文中运行javascript。你可以用这种方式运行你想要的任何东西(尝试在你的地址栏中输入“javascript:alert('标题是:'+ document.title);”并点击回车。你应该收到一条警告,显示你的页面标题“继续。你可以考虑阅读它们的工作方式on wikipedia

d)bookmarklet所依赖的drag-bookmarklet-to-bar功能实际上内置于您的Web浏览器中。要制作可在任何现代浏览器上运行的可安装书签,您只需要:

<a href="javascript:[bookmarklet code here]">Drag to bookmark bar to install!</a>