在Google Reader中,您可以使用bookmarklet来“记录”您正在访问的页面。当您按下bookmarklet时,一个小小的Google表单将显示在当前页面的顶部。在表单中,您可以输入说明等。当您按下Submit时,表单在不离开页面的情况下提交自己,然后表单消失。总而言之,这是一个非常流畅的体验。
我显然想看看它是如何完成的,但最有趣的部分都被缩小了,无法阅读。所以..。
关于如何实现这样的东西(在浏览器端)有什么想法吗?有什么问题吗?现有的博客文章描述了这一点?
发布于 2008-09-15 16:06:00
Aupajo说得对。不过,我将向您介绍我为我们的网站(www.iminta.com)设计的一个书签框架。
bookmarklet本身如下所示:
javascript:void((function(){
var e=document.createElement('script');
e.setAttribute('type','text/javascript');
e.setAttribute('src','http://www.iminta.com/javascripts/new_bookmarklet.js?noCache='+new%20Date().getTime());
document.body.appendChild(e)
})())
这只是将一个新脚本注入到包含此文件的文档中:
http://www.iminta.com/javascripts/new_bookmarklet.js
值得注意的是,bookmarklet创建了一个iframe,对其进行定位,并将事件添加到文档中,以允许用户执行诸如点击转义(关闭窗口)或滚动(使其保持可见)之类的操作。它还隐藏了不能很好地处理z定位的元素(例如flash)。最后,它简化了与运行在iframe中的javascript的通信。通过这种方式,您可以在iframe中有一个关闭按钮,该按钮告诉父文档删除iframe。这种跨域的东西有点老生常谈,但这是(我见过的)唯一的方法。
不是为了假装发自内心;如果你不擅长JavaScript,那就准备好努力吧。
发布于 2008-09-15 15:21:00
在最基本的层面上,它将使用createElement
创建要插入到页面中的元素,并使用appendChild
或insertBefore
将这些元素插入到页面中。
发布于 2008-09-15 15:26:16
您可以使用一个简单的书签小程序添加一个标记,该标记加载一个外部JavaScript文件,该文件可以将必要的元素推送到DOM,并向用户显示一个模态窗口。表单通过AJAX请求提交,在服务器端进行处理,并返回成功或用户需要更正的错误列表。
因此,bookmarklet将如下所示:
javascript:code-to-add-script-tag-and-init-the-script;
外部脚本将包括:
窗口效果可以通过CSS定位来实现。
至于这个特定任务的一个完整的资源,你会很幸运地找到任何东西。但是看一下更小的,单独的部分,你会发现大量的资源。查看有关模式窗口、向DOM添加元素和AJAX处理的信息。
https://stackoverflow.com/questions/67713
复制