正在尝试找出这个JavaScript bookmarklet
我是一名JavaScript/编程新手,正在尝试找出新的bookmarklet,该bookmarklet的发布有助于克服新的纽约时报付费墙(NY Times paywall),可在本博客上找到 只有下面3行JavaScript正在尝试找出这个JavaScript bookmarklet,javascript,Javascript,我是一名JavaScript/编程新手,正在尝试找出新的bookmarklet,该bookmarklet的发布有助于克服新的纽约时报付费墙(NY Times paywall),可在本博客上找到 只有下面3行JavaScript //Prototype is already installed on NYTimes pages, so I'll use that: $('overlay').hide(); $('gatewayCreative').hide(); $(do
//Prototype is already installed on NYTimes pages, so I'll use that:
$('overlay').hide();
$('gatewayCreative').hide();
$(document.body).setStyle( { overflow:'scroll' } );
因此,我认为学习JavaScript的实际使用并不太复杂
当我点击实际bookmarklet的源代码时,它显示了这一点
<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已经安装在《纽约时报》的页面上时,他指的是Prototype库,所以他的代码只是在改变他们对该库所做的事情
b) 在bookmarklet的源代码中,他执行document.getElementsByTagName('head')[0].appendChild;})();“
文档是否指读者将出现的《纽约时报》页面?而“head”指的是《纽约时报》主页中的一个元素,他在该元素后面附加了子s
c) bookmarklet的源代码是否包装在链接中,以便只有在单击链接/bookmarklet时才会发生appendChild
。书签本质上是运行代码的链接吗
d) 你知道有什么资源可以解释如何制作可以从网页拖动到书签栏的书签吗?拖动到书签栏的功能显然与它包含的代码是分开的,所以如果我想制作自己的书签来试验JavaScript,你知道在哪里可以学它吗搭渡轮到机场
b&c)bookmarklets的工作方式是通过使用“javascript:”协议在给定网站的上下文中运行javascript。您可以通过这种方式运行任何您想要的内容(尝试键入“javascript:alert('标题是:'+document.title));“在你的地址栏和点击回车。你应该得到一个警告,显示你的页面标题。你可以考虑阅读一下它们是如何工作的。
d) bookmarklet所依赖的“将bookmarklet拖到工具栏”功能实际上内置于web浏览器中。要制作可在任何现代浏览器上运行的可安装书签,您只需具备:
<a href="javascript:[bookmarklet code here]">Drag to bookmark bar to install!</a>
非常感谢。关于(d),我认为他创建的class=“supercolbutton”是为了在他的网页上设置CSS的样式,但这并没有进入我的浏览器上的bookmarklet栏,是吗?css会随之拖动吗?css严格用于显示链接本身。当您安装bookmarklet时,唯一需要注意的是HREF:)Upvoted的值,我要添加的唯一内容(他问的是我的代码)是记住“javascript:(function(){alert('Doing')})(;”格式;这样,浏览器就不会试图向您显示操作的结果(不同的浏览器对javascript:link的结果处理不同),它会正常运行函数并继续运行。