Tumblr的“数据代笔”

时间:2011-08-20 20:10:39

标签: javascript html html5 tumblr

在Tumblr的注册页面上,它有三个框,一个用于密码,一个用于电子邮件,一个用于您的网址。我感兴趣的是URL位。无论你键入什么,都会跟着.tumblr.com。您不能将光标放在它后面或突出显示或删除它。它是如何做到的?

我检查了源代码,它的属性为data-ghostwriter=".tumblr.com"。我没有认出来,所以我用Google搜索,但仍然没有。我假设它是一个自定义属性,即使这看起来像HTML会有规则,但我在链接的JavaScript文件中找不到任何关于它的内容。

所以,两个问题。他们是如何做到的,您可以使用自定义HTML属性吗?

编辑:所以html5允许data-自定义属性并使用jsbeautifier,输入的代码是:

http://pastebin.com/b5Yd51Mi

这是如何工作的,我仍然有点困惑。

1 个答案:

答案 0 :(得分:1)

HTML5中明确允许使用“data-”属性。任何东西都可以跟随“数据 - ”(嗯,HTML属性名称的一些合理的句法规则范围内的任何东西)。通常,您可以在HTML元素节点上使用“getAttribute()”方法访问值。

现在,虽然这一切都是真的,但tumblr用XHTML doctype提供这些页面有点可疑: - )

This older SO question描述了效果是如何完成的。他们将半透明的盒子放在输入区域的正上方。当你开始输入时,它们会使框显示,并用两个<span>元素填充它:第一个,带有你输入的内容的副本,在真实输入字段中设置为像文本一样黑,第二个,带有静态“.tumblr.com”后缀,并且风格为浅灰色和“ghosty”。