5

tumblr ブログで問題が発生しました。私の 2 つの異なるテーマには、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>

4

3 に答える 3

8

すべてのTumblr ブログにこの問題があります。公式の Tumblr スタッフ ブログでも:

<!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>

…</p>

Tumblr はこのスクリプトをすべてのブログ ページに挿入しているようです。おそらく、ユーザーがブログ所有者の管理下にあるパスワード フィールドにパスワードを入力しないように防止/警告するためです。

Tumblr が DOCTYPE を自動的に挿入する限り、カスタム テーマから DOCTYPE を削除できます。それにもかかわらず、挿入されたscript要素はまだ開始要素の前にhtmlあるため、無効なマークアップが発生します。

于 2013-03-12T19:24:33.933 に答える
0

Tumblr は、Doctype といくつかのスクリプトを各ページの上に自動的に配置します。このスクリプトは、ユーザーがブログのパスワード フィールドに入力しようとしたときに警告を発し、AJAX と透明ピクセルを介してデータ追​​跡を行います。

HTML 構文の定義によれば、要素の開始と終了を暗示することができる場合、特定のタグを HTML ドキュメントから省略できます。詳細については、こちらをお読みください。重要なことは、html 要素と head 要素を開く (または閉じる) 必要がないことです。そのため、tumblr は実際には、doctype の後にスクリプトを配置することによって何か間違ったことを行うわけではありません。問題は、デフォルトのテーマとドキュメントが、これらのタグを開いてはならないことを指定していないことです。

このすべてを知っていれば、テーマの html と head を開かないことで、tumblr サイトを有効にすることができます。ただし、tumblr は head の末尾に追加のコードを自動的に追加するため、実際に head タグを配置しないとページが壊れます。

Tumblrはまた、無効な属性や重複したメタタグを大量に配置し、全体的に非常に面倒です. tumblr サイトを有効な HTML にする方法はまったくありません。これは非常に恐ろしいことです。

于 2016-07-20T20:23:05.970 に答える