javascript internet explorer array issues
javascript internet explorer array issues
我知道Internet Explorer <9在Javascript数组方面有问题。 我尝试过使用权宜之计,但我一辈子都无法解决这个问题。
基本上,我有这段代码(精简方式):
YUI.add('query-params', function (Y) {
Y.QueryParams = {
/**
Parses our query string and returns an object containing the k/v pairs passed
in rules
@method parse
@param {String} query string to parse
@param {RegExp} regex rules to compare our query string against
@return {Object} returns an object containing the k/v pairs that match
*/
parse: function (qs, rules, params) {
qs = qs.replace('?', ''); // remove ? from query string
qs = qs.replace(/'+/g, ' ');
var matches = rules.exec(qs);
var defined_matches = Y.Array.filter(matches, function(m) {
return ((typeof m != 'undefined') || ( m == true ));
});
// rest of script omitted
它被初始化为:
<script>
YUI({
modules: {
'query-params': {
fullpath: './parse_search_terms.js'
}
},
onFailure: function (error) {
console.log(JSON.stringify(error));
}
}).use('node', 'console', 'query-params', function (Y) {
var params = Y.QueryParams.parse(window.location.search, /('w+)'s('w+)'s('w+)|('w+)'s('w+)/ig, ["firstName", "lastName", "state"]);
var url = "url_to_send_to?firstName=" + params.firstName + "&lastName=" + params.lastName + "&state=" + params.state;
var iframe = Y.Node.create('<iframe></iframe>').setAttrs({
src: url,
frameBorder: 'no',
height: 300,
width: 800,
scrolling: 'no'
});
Y.one('#iframe').appendChild(iframe);
});
当我传递像"q=john+smith+ca"这样的查询字符串和JSON.stringify匹配变量时,我在IE,Firefox和Chrome中得到的是这样的:
john smith ca,john,smith,ca,,
当我在阵列上调用Y.Array.filter时,Firefox和Chrome会做正确的事情:
defined ["john","smith","ca"]
但是,Internet Explorer 8
:defined ["john","smith","ca","",""]
因此,由于某种原因,IE无法正确过滤我的数组。 我已经尝试了上述所有阵列垫片和权宜之计,但似乎没有任何效果。 我认为这将非常跨浏览器高效,因为我使用的是 YUI3,但我被难住了。
有人有什么想法吗?非常感谢帮助。
事实证明,如果未设置文档类型,IE会进入"怪癖模式"。 在页面顶部添加"修复了所有内容。
相关文章:
- 如何为json对象中的段发送array[]
- Array.length似乎不起作用;console.log则显示其他情况
- 如何迭代Array.prototype函数
- Javascript 新的 Array 和 join() 方法
- Array.lenght = undefined
- Javascript setTimeout for an array
- NodeJS API调用中Array中的Push和Pull元素
- 如何在MongoDB中将String转换为Array
- 为什么我可以在Array属性对象中找到Javascript Array for Each方法
- 您的平台不支持RxJS-Array.observe
- 在Jquery/Javascript中的Array中插入Textbox值
- 通过jQueryAjax一起发布Array和Form数据时出现问题
- Array.every返回false,而不是类型error
- Javascript-通过i=0直接传递array[0]与array[0],array[i]在“;如果“;陈述
- JavaScript Array unshift() 以一种不可变的方式
- 为什么可以't我用Set对象调用Array.prototype.map
- Array方法中的Javascript循环
- SharePoint Javascript Issues
- 为什么这个array.filter总是不返回任何内容
- javascript internet explorer array issues