问答文章1 问答文章501 问答文章1001 问答文章1501 问答文章2001 问答文章2501 问答文章3001 问答文章3501 问答文章4001 问答文章4501 问答文章5001 问答文章5501 问答文章6001 问答文章6501 问答文章7001 问答文章7501 问答文章8001 问答文章8501 问答文章9001 问答文章9501
你好,欢迎来到懂视!登录注册
当前位置: 首页 - 正文

为啥外部引入两个js文件,第一个不起作用

发布网友 发布时间:2022-04-29 08:14

我来回答

3个回答

热心网友 时间:2022-04-24 17:13

那肯定是js冲突

①、变量名冲突
变量有全局变量和局部变量当全局变量变量和局部变量名称一致时,就会js冲突,由于变量传递数值或地址不同就会产生JavaScript错误,甚至死循环。
②、方法名冲突
函数中有很多方法,不同的js之间可能函数名一样,这就使得程序执行时不知道改调用那个方法或者哪个方法执行后的结果,最终导致程序加载失败。
③、函数名冲突
一般是命名导致JS冲突。解决方法主要是查找在加载的js中是否具有相同命名的情况,然后修改命名

b.onload 事件冲突
如果在js中调用了window.onload = function(),同时在页面上又有body onload语句,会导致window.onload事件覆盖掉body onload事件而出现错误.
解决方法:attachEvent给onload添加所需运行的函数。

c . 浏览器不兼容问题,虽然这个不属于js冲突但是也常见的js的原因之一
①document.form.item 问题
(1)现有问题: 现有代码中存在许多document.formName.item("itemName") 这样的语句,不能在Fx 下运行
(2)解决方法: 改用document.formName.elements["elementName"]

②集合类对象问题
(1)现有问题: 现有代码中许多集合类对象取用时使用(),IE 能接受,Fx 不能。
(2)解决方法: 改用[] 作为下标运算。如:document.forms("formName") 改为document.forms["formName"]。又如:document.getElementsByName("inputName")(1) 改为document.getElementsByName("inputName")

③window.event
(1)现有问题: 使用window.event 无法在Fx 上运行
  (2)解决方法: Fx 的event 只能在事件发生的现场使用,此问题暂无法解决。可以这样变通:
  原代码(可在IE中运行):
代码:
<inputtype="button" name="someButton" value="提交
"onclick="javascript:gotoSubmit()"/>
...
<script language="javascript">
function gotoSubmit() {
...
alert(window.event);
// use window.event
...
}
</script>
新代码(可在IE和Fx中运行):
代码:
<input type="button" name="someButton" value="提交"
onclick="javascript:gotoSubmit(event)"/>
...
<script language="javascript">
function gotoSubmit(evt) {
evt = evt ? evt : (window.event ? window.event : null);
...
alert(evt);
// use evt
...
}
</script>
此外,如果新代码中第一行不改,与老代码一样的话(即gotoSubmit 调用没有给参数),则仍然只能在IE中运行,但不会出错。所以,这种方案tpl 部分仍与老 代码兼容。

④HTML 对象的id 作为对象名的问题
(1)现有问题 :在IE 中,HTML 对象的ID 可以作为document 的下属对象变量名直接使用。在Fx 中不能。
(2)解决方法 :用getElementById("idName") 代替idName 作为对象变量使用。

⑤用idName字符串取得对象的问题
(1)现有问题 :在IE中,利用eval(idName) 可以取得id 为idName 的HTML 对象,在Fx 中不能。
(2)解决方法 :用getElementById(idName) 代替eval(idName)。

⑥变量名与某HTML 对象id 相同的问题
(1)现有问题 :在Fx 中,因为对象id 不作为HTML 对象的名称,所以可以使用与HTML 对象id 相同的变量名,IE 中不能。
(2)解决方法 :在声明变量时,一律加上var ,以避免歧义,这样在IE 中亦可正常运行。
此外,最好不要取与HTML 对象id 相同的变量名,以减少错误。

⑦event.x 与event.y 问题
(1)现有问题 :在IE 中,event 对象有x, y 属性,Fx中没有。
(2)解决方法 :在Fx中,与event.x 等效的是event.pageX。但event.pageX IE中没有。
故采用event.clientX 代替event.x。在IE 中也有这个变量。
  event.clientX 与event.pageX 有微妙的差别(当整个页面有滚动条的时候),不过大多数时候是等效的。 如果要完全一样,可以稍麻烦些:
  mX = event.x ? event.x : event.pageX;
  然后用mX 代替event.x
(3)其它:event.layerX 在IE 与Fx 中都有,具体意义有无差别尚未试验。

⑧关于frame
(1)现有问题 :在IE中 可以用window.testFrame取得该frame,Fx中不行
(2)解决方法 :在frame的使用方面Fx和ie的最主要的区别是: 如果在frame标签中书写了以下属性:
  <frame src="xx.htm" id="frameId" name="frameName" />
那么ie可以通过id或者name访问这个frame对应的window对象,而Fx只可以通过name来访问这个frame对应的window对象,例如如果上述frame标签写在最上层的window里面的htm里面,那么可以这样访问
ie: window.top.frameId或者window.top.frameName来访问这个window对象
  Fx: 只能这样window.top.frameName来访问这个window对象
另外,在Fx和ie中都可以使用window.top.document.getElementById("frameId")来访问frame标签 ,并且可以通过window.top.document.getElementById("testFrame").src = 'xx.htm'来切换frame的内容 ,也都可以通过window.top.frameName.location = 'xx.htm'来切换frame的内容

⑨在Fx中,自己定义的属性必须getAttribute()取得

⑩在Fx中没有parentElement parement.children 而用
  parentNode parentNode.childNodes
  childNodes的下标的含义在IE和Fx中不同,Fx使用DOM规范,childNodes中会插入空白文本节点。
  一般可以通过node.getElementsByTagName()来回避这个问题。 当html中节点缺失时,IE和Fx对parentNode的解释不同,例如:
<form>  
<table> 
<input/> 
</table> 
</form>
  Fx中input.parentNode的值为form, 而IE中input.parentNode的值为空节点
  Fx中节点没有removeNode方法,必须使用如下方法node.parentNode.removeChild(node)

d . const 问题
(1)现有问题: 在IE 中不能使用const 关键字。如const constVar = 32; 在IE中这是语法错误。
(2)解决方法: 不使用const ,以var 代替。
  .. body 对象
  Fx的body在body标签没有被浏览器完全读入之前就存在,而IE则必须在body完全被读入之后才存在
  . url encoding
  在js中如果书写url就直接写&不要写&例如var url = 'xx.jsp?objectName=xx&objectEvent=xxx';
  frm.action = url那么很有可能url不会被正常显示以至于参数没有正确的传到服务器
一般会服务器报错参数没有找到,当然如果是在tpl中例外,因为tpl中符合xml规范,要求&书写为&
一般Fx无法识别js中的&

e . nodeName 和tagName 问题
(1)现有问题: 在Fx中,所有节点均有nodeName 值,但textNode 没有tagName 值。在IE 中,nodeName 的使用好象
有问题(具体情况没有测试,但我的IE已经死了好几次)。
(2)解决方法: 使用tagName,但应检测其是否为空。
  元素属性:IE下input.type属性为只读,但是Fx下可以修改
document.getElementsByName() 和document.all[name] 的问题
(1)现有问题: 在IE 中,getElementsByName()、document.all[name] 均不能用来取得div 元素(是否还有其它不能取的元素还不知道)。

热心网友 时间:2022-04-24 18:31

只引入第一个就起作用?可能第一个定义的一些全局变量被第二个覆盖,或者两个js文件的连接处由于标点符号问题导致第一个执行错误。
如果是第二种情况的话,在第二个文件的开头加一个分号";"

热心网友 时间:2022-04-24 20:05

路径、引入顺序不对,或者页面加载时有冲突。
为啥外部引入两个js文件,第一个不起作用

一般是命名导致JS冲突。解决方法主要是查找在加载的js中是否具有相同命名的情况,然后修改命名 b.onload 事件冲突 如果在js中调用了window.onload = function(),同时在页面上又有body onload语句,会导致window.onload事件覆盖掉body onload事件而出现错误.解决方法:attachEvent给onload添加所需运行的函数。...

网页调用另外一个js文件后,其他js文件失效

可能是那个js文件的变量或者方法与原有的重名了,覆盖了原来的,所以原来的无效了。也可能引入的代码出错了,而原来的代码放在引入的代码后面,所以不能执行了。

一个JS文件被引入两次会不会产生js方法冲突导致无法使用?

有可能,只要你的Js没的页面加载事件,都没的什么大问题,不然方法会执行2次

多个页面引用同个js文件为什么只在第一个页面有效

你的第一个页面有id是intro的元素,当然可以执行js文件里面的上面几行代码了 你的第二个页面没有id是intro的元素,不可以执行,报错,undefined,null,所以就没有效果了 所以看起来就像是只有第一个页面被调用了 给你文档,让你在一个礼拜的时间里从菜鸟到大神 ...

js导入文件选择同一个文件不触发了

在路径和代码都没有出错的情况下,无法调用里面的javascript代码。javascript里面,有直接操作页面元素的代码,所以不能在head里面引用。 而应该放到body内引用。

...里面同时挂载两个或者多个js代码,只执行第一个,怎么解决?

不可能,是可以同步加载N多JS的,除非你那些JS里面的内容是一样的。那他会自动加载最后一个

一个html中能否添加两个js脚本

缺省布局是borderLayout的话,东南西北中五个区域各方一个,第六个就放不了了 使用null布局,给各个jpanel直接定位即可 odoo 如何在编辑页面添加js脚本 JavaScript是一种基于对象和事件驱动并具有相对安全性的客户端脚本语言。同时也是一种广泛用于客户端Web开发的脚本语言,常用来给HTML网页添加动态功能,比如响应用户的...

请教js大神!请问如果在一个jsp文件中,同时引入两个js(库)文件而这两个...

你好 冲突只能把 重复的部分去掉 因为只能导入一次 多次导入会导致js错误的 希望能帮到你 谢谢

javascript中不同的外部js文件中都有window.onscroll,只有一个执行怎么...

使用attachEvent或addEventListener 绑定事件

如何在一个js中引用多个js文件

可以创建一个函数叫require 该函数支持两个参数 第一个参数 src 需要引入的script的路径 (这个参数可以是路径也可以是一个数组 多个js文件)第二个回掉函数 在引入的script标签加载完成了调用 因为楼主是引用js文件所以必须要在引入的js加载完成了才能运行后面的js 所以下面给出一份演示 &lt;!DOCTYPE html...

声明:本网页内容为用户发布,旨在传播知识,不代表本网认同其观点,若有侵权等问题请及时与本网联系,我们将在第一时间删除处理。
E-MAIL:11247931@qq.com
阴部毛囊炎的症状 总梦到自己喜欢的男人在乡里土灶上弄饭还说我把他气瘦 ...类似QQ秀那种的换装类,女生玩的小游戏网上有在线玩的地址吗... 为什么铝青铜试棒总是在根部断裂 QAl10-4-4铝青铜、减摩性和密度、热处理范围 QAl10-4-4铝青铜简介 彩虹堂换装游戏手机版在线玩如何下载 QAl10-4-4铝青铜铝青铜 骏越小龟王电池能用60v的吗?控制器写的是48符24安 可是想换个60付20... ...的抖音账号注销了,现在又申请了一个新的抖音账号,用的相同的手机号码... jquery,引用外部js文件 Js怎么调用外部Js 怎么调用外部js文件? 家中进门墙上挂什么画好 卧室床头上边挂什么画好效果图 范治斌的展览获奖 马保林的画家马保林 在洛阳成人去那学习国画牡丹比较好! 跟人聊微信,不小心把记录删除了怎么找回? 画洛阳牡丹有个叫丁进有的,是名家吗? 唐金海的荣誉 微信聊天记录删除了怎么恢复?用果师兄可以找回吗 华为手机如何查看自己的电话 在手机能找回以前微信聊天记录 车载蓝牙连接成功后,一开始连接有声音,十几秒后就没有声音?- 问一问 iphone5与现代ix35蓝牙连接成功 用qq音乐播放歌曲手机和汽车音响都没反应求解 华为手机与移动电话是一样的吗? 微信聊天记录误删怎么办 现代依兰特2008款手动高配的蓝牙和车载电话怎么用 北京现代伊兰特老款可以直接用车载蓝牙吗? 如何调用一个外部的js函数 html里的js代码怎么改成外部js文件调用呢? 如何在博客园中 调用 外部js文件 关于.js文件外部引用的问题。 京东代运营的收费是怎么收费的? html怎么调用外部js文件? 网店代运营费用都有哪些?让代运营做真的有用吗? js如何引用外部样式 DNF96级后没有主线任务了,怎么办? dnf到了86级了没主线任务了怎么刷的那些异界装备呀 dnf86级没有主线任务怎么做 dnf的主线任务怎么消失了? dnf我86级,没主线任务了, 也没有远古深渊怎么回事? DNF我86的主线做什么了,怎么没有成就任务 DNF的主线任务不见了 住顶楼的,有跟我一样油烟味的困扰吗?郁闷死了! 科研论文里引文【1】怎么弄到右上角去呢 手机充电器能给汽车的12v电瓶充电么? 手机充电器能改装成用12V汽车电瓶作输入的车载充电器吗?如何改装? 我汽车电瓶没电了,用充电器充一个晚上行吗,新车?
  • 焦点

最新推荐

猜你喜欢

热门推荐