Jquery ui jqui对话框的Knockout init请求Chrome中的空数据:URL
在使用jQuery 1.8.2、jQuery UI 1.8.23和Knockout 2.2.0的页面上,我发现Google Chrome版本Jquery ui jqui对话框的Knockout init请求Chrome中的空数据:URL,jquery-ui,google-chrome,knockout.js,Jquery Ui,Google Chrome,Knockout.js,在使用jQuery 1.8.2、jQuery UI 1.8.23和Knockout 2.2.0的页面上,我发现Google Chrome版本24.0.1312.52 m有一个错误。当我加载页面时,对URL的HTTP请求失败,该URL只是获取数据:HTTP/1.1,它是从初始化jQuery UI对话框的语句生成的(请参阅文章底部的代码)。该页面工作正常,但这会导致状态栏和JS控制台中出现错误,我希望避免吓到我的用户。这个错误在IE 9或FireFox 15.0.1中没有出现,但它确实出现在Safa
24.0.1312.52 m
有一个错误。当我加载页面时,对URL的HTTP请求失败,该URL只是获取数据:HTTP/1.1
,它是从初始化jQuery UI对话框的语句生成的(请参阅文章底部的代码)。该页面工作正常,但这会导致状态栏和JS控制台中出现错误,我希望避免吓到我的用户。这个错误在IE 9或FireFox 15.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
有三个地方引用了我的脚本:
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 };
(匿名函数)3896:362
360
361$(函数(){
362 registerVM();已修复。罪魁祸首是第260行附近jquery ui.css
中的数据:
url,其中有一些讨论:
我不知道为什么他们认为这是一个比这更好的主意
.ui-resizable-handle { background-image: none; }
这就是我推翻规则的原因,现在Chrome中没有页面错误。在某个时候,我需要在jQUI bug跟踪器中注册并发布更新
.ui-resizable-handle { background-image: none; }