0

24.0.1312.52 mjQuery 1.8.2、jQuery UI 1.8.23、およびKnockout2.2.0を使用しているページでGoogleChromeバージョンでエラーが発生します。ページをロードすると、単純なURLへのHTTPリクエストが失敗しGET data: HTTP/1.1、jQuery UIダイアログを初期化するステートメントから生成されます(コードについては、投稿の下部を参照してください)。ページは正常に動作しますが、これによりステータスバーとJSコンソールにエラーが表示されるため、ユーザーを怖がらせないようにしたいと思います。このエラーはIE9またはFireFox15.0.1には表示されませんが、Safari 5.1.7(Windows)には表示されます。Chrome Inspectorでは、エラーの呼び出しスタックは次のようになります。

GET data:  jquery.min.js:2
    a.getComputedStyle.bH                      jquery.min.js:2
    p.extend.css                               jquery.min.js:2
    bZ                                         jquery.min.js:2
    b$                                         jquery.min.js:2
    p.fn.extend.show                           jquery.min.js:2
    p.each.p.fn.(anonymous function)           jquery.min.js:2
    a.fn.extend.show                           jquery-ui.min.js:5
    a.widget._create._renderAxis               jquery-ui.min.js:5
    a.widget._create                           jquery-ui.min.js:5
    a.Widget._createWidget                     jquery-ui.min.js:5
    a.widget.a.(anon function).(anon function) jquery-ui.min.js:5
    a.widget.bridge.a.fn.(anonymous function)  jquery-ui.min.js:5
    p.extend.each                              jquery.min.js:2
    p.fn.p.each                                jquery.min.js:2
    a.widget.bridge.a.fn.(anonymous function)  jquery-ui.min.js:5
    a.widget._makeResizable                    jquery-ui.min.js:5
    a.widget._create                           jquery-ui.min.js:5
    a.Widget._createWidget                     jquery-ui.min.js:5
    a.widget.a.(anon function).(anon function) jquery-ui.min.js:5
    a.widget.bridge.a.fn.(anonymous function)  jquery-ui.min.js:5
    p.extend.each                              jquery.min.js:2
    p.fn.p.each                                jquery.min.js:2
    a.widget.bridge.a.fn.(anonymous  function) jquery-ui.min.js:5
    ko.bindingHandlers.jqDialog.init           QualityWalkViewModel.js:78
    b.j.W                                      knockout-2.2.0.js:11
    g                                          knockout-2.2.0.js:43
    b.j                                        knockout-2.2.0.js:45
    W                                          knockout-2.2.0.js:10
    X                                          knockout-2.2.0.js:12
    Y                                          knockout-2.2.0.js:12
    X                                          knockout-2.2.0.js:12
    Y                                          knockout-2.2.0.js:12
    X                                          knockout-2.2.0.js:12
    b.Ca                                       knockout-2.2.0.js:58
    registerVM                                 3896:378
    (anonymous function)                       3896:362
    p.Callbacks.k                              jquery.min.js:2
    p.Callbacks.l.fireWith                     jquery.min.js:2
    p.extend.ready                             jquery.min.js:2
    D                                          jquery.min.js:2

スクリプトを参照する場所は3つあります。

ko.bindingHandlers.jqDialog.init     QualityWalkViewModel.js:78
registerVM                           3896:378
(anonymous function)                 3896:362

3896はページの名前です(これはのようなURLのIDセグメントです /WalkThrough/Edit/3896)。参照されている行のコードは次のとおりです。

(anonymous function)                 3896:362
360    <script type="text/javascript">
361    $( function() {
362        registerVM();                          <--- here

registerVM                           3896:378
374    <script type="text/javascript">
375        var vm; // debug
376        function registerVM() {
377            vm = new QualityWalkViewModel( initialQualityWalkData );
378            ko.applyBindings( vm );            <--- here
379        }

QualityWalkViewModel.js:78
68    ko.bindingHandlers.jqDialog = {
69        init: function( element, valueAccessor ) {
70            var options = ko.utils.unwrapObservable( valueAccessor() ) || {};
71            
72            // handle disposal
73            ko.utils.domNodeDisposal.addDisposeCallback( element, function() {
74                $( element ).dialog('destroy');
75            });
76    
77            // init the dialog
78            $( element ).dialog( options );     <--- here
79        }
80    };

この最後のスクリプトは、jQueryUIダイアログを初期化するためのカスタムバインディングハンドラーであり、JQueryダイアログ内のMVCKnockoutJSに応答してhttp://jsfiddle.net/rniemeyer/WpnTU/から適合されています。

行をコメントアウトする$( element ).dialog( options );と、エラーはなくなります。jQuery UIが空のdata:URLを生成し、それを要求しようとする理由はありますか?

4

1 に答える 1

0

修理済み。原因は 260 行あたりのdata:URL で、 http://bugs.jqueryui.com/ticket/7233jquery-ui.cssでいくつかの議論があります。

.ui-resizable-handle { background-image:url(data:); }

なぜ彼らがそれがより良い考えだったのか私にはわかりません

.ui-resizable-handle { background-image: none; }

これは私がルールをオーバーライドしたものであり、Chrome でページ エラーが発生しなくなりました。ある時点で、jQUI バグ トラッカーに登録して更新を投稿する必要があります。

于 2013-02-09T01:26:25.007 に答える