无效的tumblr头,重复的doctype,奇怪的javascript

时间:2013-03-11 22:14:14

标签: javascript tumblr

我的tumblr博客出了问题。在我的两个不同主题中有一些javascript和一个重复的doctype,我无法在自定义设置区域或主题标记设置中删除。

支持无能为力。

这真的很糟糕:该页面无效,因此您无法在某些浏览器中访问它,尤其是在Linux上。

错误的代码:

<!DOCTYPE html><script>!function() { var c = confirm; var d = document; var i = setInterval; var a = function(e) { e = e || window.event; var t = e.target || e.srcElement; if (t.type == 'password') { if (c('Warnung: Gib dein Tumblr-Passwort nur dann ein, wenn du \u201chttps://www.tumblr.com/login\u201d\x0ain der Adresszeile deines Browsers siehst.\x0a\x0aAu\u00dferdem sollte dort ein gr\u00fcnes \u201cTumblr, Inc.\u201d-Logo zu sehen sein.\x0a\x0aSpammer und andere Strolche benutzen gef\u00e4lschte Formulare, um an Passw\u00f6rter zu kommen.\x0a\x0aTumblr wird dich niemals bitten, dich vom Blog eines Users aus einzuloggen.\x0a\x0aWillst du ganz sicher fortfahren?')) { a = function() {}; } else { t.value = ""; return false; } } }; i(function() { if (typeof d.addEventListener != 'undefined') d.addEventListener('keypress', a, false)}, 0); }();</script><!DOCTYPE html>

3 个答案:

答案 0 :(得分:8)

所有 Tumblr博客都有这个问题。甚至是official Tumblr staff blog

<!DOCTYPE html>
<script>
  !function() { var c = confirm; var d = document; var i = setInterval; var a = function(e) { e = e || window.event; var t = e.target || e.srcElement; if (t.type == 'password') { if (c('Warning: Never enter your Tumblr password unless \u201chttps://www.tumblr.com/login\u201d\x0ais the address in your web browser.\x0a\x0aYou should also see a green \u201cTumblr, Inc.\u201d identification in the address bar.\x0a\x0aSpammers and other bad guys use fake forms to steal passwords.\x0a\x0aTumblr will never ask you to log in from a user\u2019s blog.\x0a\x0aAre you absolutely sure you want to continue?')) { a = function() {}; } else { t.value = ""; return false; } } }; i(function() { if (typeof d.addEventListener != 'undefined') d.addEventListener('keypress', a, false)}, 0); }();
</script>
<!DOCTYPE html>
<!-- NOTE: This theme is used multiple places. Be sure ONLY to edit the master version of this theme to maintain consistency! -->
<html>
     

...

Tumblr似乎将此脚本注入所有博客页面,可能是为了防止/警告用户不要在博客所有者的控制下将密码输入密码字段。

只要Tumblr自动注入DOCTYPE,您就可以从自定义主题中删除DOCTYPE。尽管如此,注入的script元素在开头html元素之前仍然是,导致标记无效。

答案 1 :(得分:1)

我们遇到了同样的问题,并且Facebook未能分享该网址,因此我们通过从DOCTYPE模板移除tumblr来解决此问题,以避免重复。

答案 2 :(得分:0)

Tumblr会自动在每个页面上方放置一个doctype和几个脚本。当用户尝试在博客上输入密码字段并通过AJAX和透明像素进行数据跟踪时,脚本会警告用户。

根据HTML语法定义,当隐含元素的开头和结尾时,可以从HTML文档中省略某些标记。 Read this了解完整详情。重要的是你不需要打开(或关闭)html和head元素。因此tumblr实际上并没有通过将doctype后跟脚本来做错。错误的是,默认主题和文档没有指定我们不应该打开这些标记。

了解这一切,我们可以通过不打开html并在我们的主题中开头使我们的tumblr站点有效。但是,tumblr会自动在头部附加额外的代码,如果你实际上没有放置头部标签,它会破坏页面。

Tumblr还提出了一堆无效的属性,重复的元标记,并且总是非常混乱。根本没有办法让tumblr网站有效的HTML,这非常可怕。