event.returnValueは非推奨です。代わりに標準のevent.preventDefault()を使用してください


222

私はこのスクリプトを持っています:

<script>
$(document).ready(function () {
    $("#changeResumeStatus").click(function () {
        $.get("{% url 'main:changeResumeStatus' %}", function (data) {
            if (data['message'] == 'hidden') {
                $("#resumeStatus").text("скрыто");
            } else {
                $("#resumeStatus").text("опубликовано");
            }
        }, "json");
    });
});
</script>

Google Chromeコンソールに次のエラーが表示されます。

event.returnValueは非推奨です。代わりに、標準のevent.preventDefault()を使用してください。

私はjQuery v1.10.2を使用し#changeResumeStatusてい<span>ます。

スクリプトの何が問題になっていますか?


19
これはエラーではなく、単なる警告です-これは無視しても問題ありません。
Qantas 94 Heavy

32
この警告は最新のChrome更新に続くものです

2
ASCII以外の文字列のエスケープを検討する必要があります。
Gleno 2013年

4
@AlexParakhnevichそうするための単一の説得力のある理由はありませんが、時々忍び寄るいくつかのマイナーな理由があります。私の反応は、正直に言うと、よく考えられていたというより、本能的でした。私が現在取り組んでいるプロジェクトでは、一部の外部ツール(typescriptコンパイラ)がそのような入力を制限したため、リテラルで非ASCII文字を使用しないようにするためのガイドラインがあります。ほとんどの場合は十分に機能しますが、問題が発生した場合、開発者の時間を大量に消費することがあります。とにかく、.empty().append("text")として表現する方が良い.text("text")です。
Gleno 2013年

1
@Gleno共有ありがとう
Alex Parakhnevich

回答:


204

これは単なる警告です。コードは引き続き機能しますが、メソッドが廃止されたため、将来はおそらく機能しなくなります。Chromium関連ソース対応するパッチ参照してください。

これは、jQuery 1.11ですでに認識および修正されています(ここここを参照)。


12
JQuery <1.11を使用しているすべてのページが壊れるようにすることを意味するのであれば、誰もがすぐにこれを壊すとは思えません。
Backpackcoder

26
この警告はjQuery 2.0.3(このコメントの時点で最新の安定版)でも表示され、修正のために現在のマイルストーンは2.1に設定されています。
対抗

jQuery 1.11を使用すると問題が解決しますか?
Krunal 2014年

ただ明確にするために... あなたのクリックハンドラでの使用を廃止しjQueryませんreturn falseか?これは、jQueryライブラリ内にあるコードのスニペットについて不平を言っているChromeですか?
mpen 2014年

2
確かに。Chromeは非推奨になりましevent.returnValue
。IE

22

ちょうど他の人の参考のために、私はこれを受け取ったところ、それがAngularJSによるものであることがわかりました。後方互換性のためです:

if (!event.preventDefault) {
    event.preventDefault = function() {
        event.returnValue = false; //ie
    };
}

4
使用されていない、または参照されている角度がない間接的なサイトでエラーが発生しています-間接的に参照されている可能性がありますが、疑問です。
B.クレイシャノン

1
@ B.ClayShannon:これはエラーではなく、警告です。特に私たちの文脈では大きな違いがあります。無視してかまいません。
f.ardelian 2013

1
@ B.ClayShannonこれを含めると、Chromeは指定されたスクリプトの場合とまったく同じように解析し、(正しく)警告をスローします。
iCodeSometime 2014

20

Bootstrapを使用している場合:

現在のバージョンのBootstrap(3.0.2)(jQuery 1.10.2とChromeを使用)では、この警告も生成されるようです。

(ところで、Twitterでもそうです。)

更新

現在のバージョンのBootstrap(3.1.0)では、この警告は生成されないようです。



6

これは、ほとんどのJavaScriptフレームワーク(jQuery、Angular、YUI、Bootstrap ...)がIE8からIE6に至るまで、古臭く最も嫌われているInternet Explorerの後方サポートを提供するという事実に関連する警告です:/

ある日、下位互換性サポートが削除され(IE9が対応するIE8 / 7/6の場合)、この警告(およびその他のIEishバグ)が表示されなくなります。

これは時間の問題です(現在、IE8は全世界で10%のシェアを持っています。1%に達するとDEADになります)。その間、警告を無視して禅を守ってください:)


jQuery 2.xxはIE9以上のみをサポートします。jQueryでIE8のサポートが必要な場合は、バージョン1.xxを使用する必要があります
Pete


3

私は多くのウェブサイトでこの警告を見ました。また、YUI 3ライブラリでも同じ警告が表示されることがわかりました。ライブラリから生成された警告です(jQueryかYUIか)。

弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.