javascript 函数 - 传递给函数的变量适用于IE,但不适用于Firefox
javascript function - variables passed into function work for IE, but not Firefox
下面是一个java脚本函数和调用此函数的点击项的html。我能够通过使用警报来判断,传递到函数中的四个值在使用 Firefox 时未定义,但在使用 IE 时有效。如果有人看到错误以及如何正确传递这些值,请告诉我。谢谢。
function LoadChild(lnEntityID, lnEntityCat, FullExpand, EquipID) {
document.getElementById('dropTypes').disabled = false;
document.getElementById('dropTypes').style.background = "white";
DescStatus = 0;
alert('lnEntityCat : ' + lnEntityCat);
if (lnEntityCat == 0) {
alert('First if is hit');
PageMethods.LoadChild(lnEntityID, lnEntityCat, GLOBALEQUIPID, FullExpand, 0, 0, 1, LoadChildCallback);
}
else if (document.getElementById('img' + lnEntityID + lnEntityCat).canExpand == "true") {
if (document.getElementById('div' + lnEntityID + lnEntityCat).style.display == 'none') {
document.getElementById('div' + lnEntityID + lnEntityCat).style.display = 'block';
document.getElementById('img' + lnEntityID + lnEntityCat).src = "../images/minus.gif"
PageMethods.LoadChild(lnEntityID, lnEntityCat, GLOBALEQUIPID, FullExpand, 0, 0, 1, LoadChildCallback);
}
else {
document.getElementById('div' + lnEntityID + lnEntityCat).style.display = 'none';
document.getElementById('img' + lnEntityID + lnEntityCat).src = "../images/plus.gif"
}
}
}
这是由服务器端代码生成的动态html,它生成当单击时调用loadChild
<img canExpand="true" style="cursor:hand" id="img72635" src="../images/plus.gif" EntityID="726" EntityCat="35" onclick="LoadChild(this.EntityID, this.EntityCat, 0, this.lnEquip);">
您依赖于元素上的非标准属性,这些属性反映为元素对象的属性。你不能可靠地,嗯,依靠它;您需要改用getAttribute
:
onclick="LoadChild(this.getAttribute('EntityID'), this.getAttribute('EntityCat'), 0, this.getAttribute('lnEquip'));">
(不太确定lnEquip
来自哪里,我在元素的属性中看不到它;如果您将其添加为其他地方的 expando,请从该特定调用中删除getAttribute
调用。
请注意,使用非标准属性意味着您的 HTML 不会验证。现在,您可以通过在这些属性前面加上 HTML5 规范中所述的data-
来以符合的方式执行此操作。虽然这在HTML4及更早版本中仍然无效,但它适用于所有浏览器,并且从HTML5开始有效。
相关文章:
- Jquery事件处理程序仅适用于匿名函数
- jQuery调整大小函数只适用于窗口
- 为什么针对工厂的Angular数据绑定只适用于函数
- .click 函数仅适用于断点
- “add”函数适用于不同的链接/参数组合
- Jquery函数只适用于第二次单击
- 我想放一个JS函数,它适用于列表的所有元素,但我可以't将其复制到每个元素中
- Dijkstra's”;针对GOTO声明的案件“;与函数一样适用于现代调用代码的命名封装
- JavaScript-getElementsByClassName适用于一个函数,但不适用于另一个函数
- 函数仅适用于第一个条件
- 添加混合 javascript 函数,使内容淡入列内的另一个内容/使其适用于两个单独的列
- 绑定函数仅适用于最后一个元素
- jQuery 更改函数适用于一个页面,但不适用于另一个页面
- 函数是否像局部变量一样适用于全局变量
- jQuery UI 可排序函数是否同时适用于多个表
- 点击时 Jquery 函数仅适用于第一行数据
- Javascript pub/sub 实现适用于函数,但不适用于对象的方法
- 函数仅适用于硬编码值
- javascript函数只适用于第一个元素
- target_blank适用于两个javascript函数,即使它适用于一个javascript函数