Knockout init of jQ UI Dialog requests empty data: URL in Chrome
在使用jQuery 1.8.2,jQuery UI 1.8.23和Knockout 2.2.0的页面上,Google Chrome版本
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 | 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 |
它在三个地方引用了我的脚本:
1 2 3 | ko.bindingHandlers.jqDialog.init QualityWalkViewModel.js:78 registerVM 3896:378 (anonymous function) 3896:362 |
3896是页面的名称(它是URL的ID段,例如
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 | (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 }; |
最后一个脚本是一个自定义绑定处理程序,用于初始化jQuery UI对话框,该对话框从http://jsfiddle.net/rniemeyer/WpnTU/改编而成,以响应JQuery对话框中的MVC Knockout JS。
如果我注释掉
已修复。罪魁祸首是第260行附近
1 | .ui-resizable-handle { background-image:url(data:); } |
我不知道为什么他们比
更好
1 | .ui-resizable-handle { background-image: none; } |
这是我取代规则的原因,现在Chrome中没有页面错误。在某些时候,我需要在jQUI Bug Tracker中注册并发布更新。