如何让 jquery.couch.app.js 与 IE8 一起使用
我已经在 Windows XP SP3 的 IE7 和 IE8(在所有兼容模式下)和 Windows 7 Ultimate 的 IE8(在所有兼容模式下)上进行了测试,并且在两者上都以同样的方式失败。我正在运行 couchapp 存储库中的最新 HEAD。这在我的 OSX 10.6.3 开发机器上运行良好。我已经在 Windows 7 Ultimate 上使用 Chrome 4.1.249.1064 (45376) 和 Firefox 3.6 进行了测试,它们都工作正常。 OSX 10.6.3 上的 Safari 4 和 Firefox 3.6 也是如此,
这是错误消息
网页错误详细信息
用户代理:Mozilla/4.0(兼容; 微星8.0; Windows NT 6.1;三叉戟/4.0; SLCC2; .NET CLR 2.0.50727; .NET CLR 3.5.30729; .NET CLR 3.0.30729; Media Center PC 6.0) 时间戳:4 月 28 日星期三 2010 年 03:32:55 世界标准时间
消息:对象不支持此功能 属性或方法 行:159 字符:7 代码:0 URI: http://192.168.0.105:5984/测试/_design/test/vendor/couchapp/jquery.couch.app.js
这是“有问题的”代码,它在 Chrome、Firefox 和 Safari 上运行得很好。如果说失败发生在从文件 jquery.couch.app.js
157 var qs = document.location.search.replace(/^\?/,'').split('&');
158 var q = {};
159 qs.forEach(function(param) {
160 var ps = param.split('=');
161 var k = decodeURIComponent(ps[0]);
162 var v = decodeURIComponent(ps[1]);
163 if (["startkey", "endkey", "key"].indexOf(k) != -1) {
164 q[k] = JSON.parse(v);
165 } else {
166 q[k] = v;
167 }
168 });
I have tested this on Windows XP SP3 in IE7 and IE8 ( in all compatibility modes ) and Windows 7 Ultimate in IE8 (in all compatiblity modes) and it fails the same way on both. I am running the latest HEAD from the the couchapp repository. This works fine on my OSX 10.6.3 development machine. I have tested with Chrome 4.1.249.1064 (45376) and Firefox 3.6 on Windows 7 Ultimate and they both work fine. As do both Safari 4 and Firefox 3.6 on OSX 10.6.3
Here is the error message
Webpage error details
User Agent: Mozilla/4.0 (compatible;
MSIE 8.0; Windows NT 6.1; Trident/4.0;
SLCC2; .NET CLR 2.0.50727; .NET CLR
3.5.30729; .NET CLR 3.0.30729; Media Center PC 6.0) Timestamp: Wed, 28 Apr
2010 03:32:55 UTCMessage: Object doesn't support this
property or method Line: 159 Char: 7
Code: 0 URI:
http://192.168.0.105:5984/test/_design/test/vendor/couchapp/jquery.couch.app.js
and here is the "offending" bit of code, which works on Chrome, Firefox and Safari just fine. If says the failure is on the line that starts qs.forEach()
from the file jquery.couch.app.js
157 var qs = document.location.search.replace(/^\?/,'').split('&');
158 var q = {};
159 qs.forEach(function(param) {
160 var ps = param.split('=');
161 var k = decodeURIComponent(ps[0]);
162 var v = decodeURIComponent(ps[1]);
163 if (["startkey", "endkey", "key"].indexOf(k) != -1) {
164 q[k] = JSON.parse(v);
165 } else {
166 q[k] = v;
167 }
168 });
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(2)
forEach() 是最近添加到 JavaScript 规范中的函数,因此并非所有浏览器都支持它。
您可以在 MDC 上阅读相关内容:
https://developer.mozilla.org/en/Core_JavaScript_1.5_Reference/ Global_Objects/Array/forEach
在“兼容性”下,您将找到一个使 forEach() 可用的代码片段。
因此,将上面的代码复制并粘贴到您的脚本中,forEach() 应该可以工作。
forEach() is a function that's recently added to the JavaScript specification, so not all browsers support it.
You can read about it at MDC:
https://developer.mozilla.org/en/Core_JavaScript_1.5_Reference/Global_Objects/Array/forEach
Under "Compatibility", you'll find a snippet that makes forEach() available.
So, copy and paste the code above to your script and forEach() should work.
我还必须将
indexOf()
添加到 Array 对象,以使其在修复 forEach() 问题后正常工作I also had to add
indexOf()
to the Array object to get it working after fixing the forEach() problem