NS_ERROR_XPC_BAD_CONVERT_JS:无法转换JavaScript参数arg 0[nsIDOMWind
NS_ERROR_XPC_BAD_CONVERT_JS: Could not convert JavaScript argument arg 0 [nsIDOMWindow.getComputedStyle] (Followup)
好的,所以我终于弄清楚了代码的哪一部分导致了异常。你可以在这里阅读最初的帖子。最初帖子中的代码缺少实际导致异常的部分(手动订阅viewPortData
observable)。显然,我做错了。。。这是代码:
self.viewPortData = ko.observable();
self.viewPortData.subscribe(function (newValue) {
var viewPort = $('#metro-view-port');
if (viewPort && newValue) {
self.fadeInOut(viewPort, newValue);
}
});
self.fadeInOut = function (domObject, newContent) {
if (newContent) {
var currentContent = domObject.html();
if (currentContent) {
var wrappedContent = $(currentContent);
wrappedContent.fadeOut(400, function () {
wrappedContent.empty();
domObject.html(newContent).hide().fadeIn(400);
});
} else {
domObject.html(newContent).hide().fadeIn(400);
}
}
};
那么我哪里错了?
我也出现了同样的错误。问题是因为HTML有注释。类似于:
<!-- Some Comment goes here -->
<div>
...
</div>
要解决这个问题,在不更改HTML的情况下,您需要用其他东西包装HTML,因此只向jQuery传递一个元素:
var div = document.createElement( 'div' );
div.innerHTML = nativeHtml;
var $html = $( div );
我使用您在这篇文章和上一篇文章中的代码创建了一个fiddle,它可以正常工作。
但是,我只返回一个简单的<div>
标记来填充metro-view-port
<div>
的HTML。
我的最佳猜测是,您返回的HTML就是问题所在。
我给你的建议是,首先通过将返回的HTML减少到非常简单的东西来确认这一点,然后逐渐重新引入预期的代码,直到你发现问题为止。
将您的fadeIn(400)翻转到show()。
jQuery为…做数学运算更简单。。。。我认为它无法获得元素的计算样式,因为它内部有一些浮动或其他原因。
我也有同样的问题。。。。。但经过一番研究后,我来到了这里(天哪,我失去了选项卡——无论如何,这是一份jQuery错误报告),并意识到需要摆弄什么才能修复它。
在我的代码中,我把fadeIn()换成了show(),所以这与动画无关
你可能会认为,如果没有动画,这个问题也不会普遍存在——但事实确实如此。
尝试slideDown(0如果你的静止图像在动画之后,它可能不起作用,但它值得一试。
这个错误出现在jQuery的旧版本中。尝试将.hide()更改为.css('display','none')
根据这个jQuery错误,问题可能与HTML中的换行符和空白文本节点有关。在我的案例中,我采用了一个像这样的模板:
<script id="myTemplate" type="text/template">
<div>
<h2>Important stuff</h2>
</div>
</script>
解析如下:
var currentContent = $.parseHTML($('#myTemplate').html());
因此,我得到了一堆文本节点,它们表示原始HTML模板中的换行符和空白字符。也许类似的事情也发生在你身上。
为了解决这个问题,我去掉了换行符和空格,如下所示:
$('#myTemplate').html().replace(/'n/g, '').replace(/>'s+</g, '><').trim();
希望这能帮助到别人!
- 在url参数javascript中存储键值对列表
- 可选参数 JavaScript 技巧
- 如何计算参数 JavaScript 中的条件
- 未定义的变量作为函数参数 javascript
- 使用带有参数 Javascript 的函数更改全局变量
- 如何在参数JavaScript中更改对象属性
- 如何使用参数(javascript)调用Date构造函数
- 作为参数(javascript)传递的函数的系统唯一id
- Backbone.BabySiter内部参数-Javascript Scope
- 未定义函数参数-Javascript
- 谷歌地图api v3-IE7-main.js错误-无效参数(javascript)
- 通过onclick函数发送参数-Javascript
- 传递属于对象的匿名方法作为参数-Javascript
- 未捕获类型错误:没有足够的参数Javascript游戏
- 缺少)参数Javascript错误
- 在函数参数Javascript上使用toSentenceCase
- 跳过函数参数javascript
- 如何在调用不带括号的函数时传递参数 [Javascript]
- 如何传递多个参数javascript
- Foreach键和值输入参数javascript