代码在JSFiddle中隔离时可以工作,但在站点时给出错误
code works when isolated in JSFiddle but gives error when in site
我把我的代码复制到JS Fiddle中,它开始工作得很好。没有错误。
我试图用unicode符号替换某些单词,如果@supports查询的值为true。我如何检查它的计算结果是否为true,是通过检查是否应用了只有它可以写的样式。
我得到的错误是
Uncaught TypeError: Cannot read property 'style' of undefined
但是当我在JS中使用相同的资产时,我没有得到任何错误。
这里是JS提琴的链接:http://jsfiddle.net/VJm6r/
代码如下:
if(document.getElementsByTagName('body')[0].style.zIndex === 0){
//ligatures and @supports supported
}
else{
//ligatures and @supports not supported
$(document).ready(function(){
var map = {
"About": { regex: /About/g, replacement: "" },
"Work": { regex: /Work/g, replacement: "" },
"CV": { regex: /CV/g, replacement: "" },
"Resume": { regex: /Resume/g, replacement: "" },
"down": { regex: /down/g, replacement: "" },
"Mail": { regex: /Mail/g, replacement: "" },
"Dribbble": { regex: /Dribbble/g, replacement: "" },
"Facebook": { regex: /Facebook/g, replacement: "" },
"GooglePlus": { regex: /GooglePlus/g, replacement: "" },
"Twitter": { regex: /Twitter/g, replacement: "" }
}
$('.nav a').each(function () {
var obj = $(this);
var html = $(this).html();
obj.html(html.replace(map[html].regex, map[html].replacement));
});
});
}
如果您的代码在<head>
中,document.getElementsByTagName('body')[0]
将返回undefined,因为主体尚未被解析。建议的修复:将整个脚本移动到正文的末尾(就在</body>
之前)。
您需要等到创建了body
元素之后。getElementsByTagName("body")
返回一个空的HTML集合。[0]
返回undefined,它没有style
属性。您可以将所有内容用$(document).ready
包装或移动到页面底部。严格地说,您可以将它移到<body>
标记之后,但前两个选项之一是更常见的做法。
您的jsFiddle将所有内容包装在$(window).load
中,这就是它在那里工作的原因。
当页面仍在加载时,javascript正在运行。当行document.getElementsByTagName('body')[0]
运行时,主体还没有机会加载,所以它返回undefined
,因为没有找到任何东西。相反,您需要将代码移动到文档的底部,在正文之后,或者在页面加载了jQuery和$(document).ready(function() {/*MY CODE HERE */};
- javascript中的数组出错
- 节点Js:How to catch a“;没有这样的文件或目录“;读取线模块出错
- 在Meteor项目中安装并包含npm模块后出错
- 解析JSON并从中删除对象会出错
- AngularJS指令出错-无法读取属性'编译'的未定义
- JavaScript滚动脚本-在测试中激发,而不是在开发站点上
- 使用javascript在MVC中查找网格长度时出错
- 尝试调用AngularJS上的函数时出错
- Google 脚本:用于创建日历活动的脚本运行时不会出错,但不会执行任何操作
- 全局安装gull后出错
- 我在代码点火器中出错
- 通过iframe登录到远程站点
- Java脚本将URL转换为已保存的URL时出错
- Backbone.js将模型绑定到视图时出错
- 将javascript代码转换为jquery代码时出错
- Javascript移动站点重定向问题
- 加载db.json时出错
- 在 Javascript 或 Jquery 的 Iframe 中出现外部站点的 URL 时出错
- 运行命令出错:构建脚本返回非零退出码;将Gatsby JS站点部署到netflix时
- iframe中的加载站点在IE中出错