javascript 兼容写法(FF&IE)

IE、FF的JS兼容写法 NULL 博文链接:https://gaojianqi6.iteye.com/blog/1202178 立即下载
兼容firefox和ie的javascript的一些写法
最近我想让我们的CMS能在firefox中使用,于是以前所写的javascript代码就都需要考虑兼容问题了,无端增加了好多工作量。
下面是兼容firefox和ie时需要注意的一些写法
一,事件处理
在ie中处理事件直接使用window.event对象即可,但在firefox中,是没有 window.event对象的,函数需要使用事件的时候,需要在事件发生时把事件作为参数传递给函数,不象在ie中,事件对象是全局的,随处都可以访问。下面这个getEvent()函数可以兼容firefox和ie,只需要在访问事件对象的函数的开始调用getEvent()即可,不用再把事件作为参数传递。
function myfunc()
{
      var evt=getEvent();
      var element=evt.srcElement || evt.target;
}


function getEvent()
{
if(document.all)     return window.event;//如果是ie
func=getEvent.caller;
         while(func!=null){
             var arg0=func.arguments[0];
             if(arg0){if((arg0.constructor==Event || arg0.constructor ==MouseEvent) || (typeof(arg0)=="object" && arg0.preventDefault && arg0.stopPropagation)){return arg0;}             }
             func=func.caller;
         }
        return null;
}
在firefox和ie中event对象还是有些差别的,比如ie中event.srcElement,在firefox中就是event.target,具体可参考:
http://www.javascriptkit.com/domref/domevent.shtml
二,访问frame或iframe对象
在ie中可以通过frame的id或name来访问,但在firefox中只能用frame的name来访问.
三,自定义属性
在ie中自定义属性可以直接访问,但在firefox中需要使用getAttribute()
比如
<td id="name" tel="1234"></td>
ie中:alert(name.tel);
firefox中:alert(name.getAttribute("tel"));
四,innerText和textContent
ie中的innerText在firefox中对应的是textContent
例如
if(document.all){
      document.getElementById('element').innerText = "my text";
} else{
     document.getElementById('element').textContent = "my text";
}
其他参考
http://developer.mozilla.org/en/docs/Gecko_DOM_Reference
http://www.javascriptkit.com/javatutors/dom.shtml
http://www-128.ibm.com/developerworks/web/library/wa-ie2mozgd/
http://www.firefox.net.cn/newforum/viewtopic.php?t=17017
FireFox中的DOM参考手册:http://www.mozilla.org/docs/dom/domref/dom_shortTOC.html
IE中的DOM参考手册:http://msdn.microsoft.com/workshop/author/dhtml/reference/dhtml_reference_entry.asp?frame=true
javascript在IE和Firefox中的兼容考虑
2007-09-06 10:38
1.document.formName.item("itemName") 问题


说明:IE下,可以使用document.formName.item("itemName")或document.formName.elements ["elementName"];Firefox下,只能使用document.formName.elements["elementName"]. 
解决方法:统一使用document.formName.elements["elementName"].




2.集合类对象问题


说明:IE下,可以使用()或[]获取集合类对象;Firefox下,只能使用[]获取集合类对象. 
解决方法:统一使用[]获取集合类对象.
例如:document.getElementsByName("inputName")[0]、document.forms["formName"] 




3.自定义属性问题


说明:IE下,可以使用获取常规属性的方法来获取自定义属性,也可以使用getAttribute()获取自定义属性;Firefox下,只能使用getAttribute()获取自定义属性. 
解决方法:统一通过getAttribute()获取自定义属性. 




4.eval("idName")问题


说明:IE下,可以使用eval("idName")或getElementById("idName")来取得id为idName的HTML对象;Firefox下只能使用getElementById("idName")来取得id为idName的HTML对象. 
解决方法:统一用getElementById("idName")来取得id为idName的HTML对象. 
例如:document.getElementById("itemId") 




5.变量名与某HTML对象ID相同的问题


说明:IE下,HTML对象的ID可以作为document的下属对象变量名直接使用;Firefox下则不能.Firefox下,可以使用与HTML对象ID相同的变量名;IE下则不能。
解决方法:使用document.getElementById("idName")代替document.idName.最好不要取HTML对象ID相同的变量名,以减少错误;在声明变量时,一律加上var,以避免歧义. 




6.const问题


说明:Firefox下,可以使用const关键字或var关键字来定义常量;IE下,只能使用var关键字来定义常量. 
解决方法:统一使用var关键字来定义常量. 




7.input.type属性问题


说明:IE下input.type属性为只读;但是Firefox下input.type属性为读写.




8.window.event问题


说明:window.event只能在IE下运行,而不能在Firefox下运行,这是因为Firefox的event只能在事件发生的现场使用. 
解决方法: 在触发事件的函数上使用(aEvent)参数,例如下面的
objNode.onmouseover=function(aEvent){
     var myEvent = window.event ? window.event.srcElement : aEvent.target;
     //执行其他动作
}




9.event.x与event.y问题


说明:IE下,even对象有x,y属性,但是没有pageX,pageY属性;Firefox下,even对象有pageX,pageY属性,但是没有x,y属性. 
解决方法:使用mX(mX = event.x ? event.x : event.pageX;)来代替IE下的event.x或者Firefox下的event.pageX.




10.event.srcElement问题


说明:IE下,even对象有srcElement属性,但是没有target属性;Firefox下,even对象有target属性,但是没有srcElement属性. 
解决方法:使用obj(obj = event.srcElement ? event.srcElement : event.target;)来代替IE下的event.srcElement或者Firefox下的event.target. 




11.window.location.href问题


说明:IE或者Firefox2.0.x下,可以使用window.location或window.location.href;Firefox1.5.x下,只能使用window.location. 
解决方法:使用window.location来代替window.location.href.




12.模态和非模态窗口问题


说明:IE下,可以通过showModalDialog和showModelessDialog打开模态和非模态窗口;Firefox下则不能. 
解决方法:直接使用window.open(pageURL,name,parameters)方式打开新窗口。


如果需要将子窗口中的参数传递回父窗口,可以在子窗口中使用window.opener来访问父窗口. 例如:var parWin = window.opener; parWin.document.getElementById("itemID").value = "some value"; 




13.frame问题


以下面的frame为例:<frame src="xxx.html" id="frameId" name="frameName" />


(1)访问frame对象:
IE:使用window.frameId或者window.frameName来访问这个frame对象.
Firefox:只能使用window.frameName来访问这个frame对象.
另外,在IE和Firefox中都可以使用window.document.getElementById("frameId")来访问这个frame对象.


(2)切换frame内容:
在IE和Firefox中都可以使用window.document.getElementById("testFrame").src = "xxx.html"或window.frameName.location = "xxx.html"来切换frame的内容.


如果需要将frame中的参数传回父窗口,可以在frme中使用parent来访问父窗口。例如:parent.document.form1.filename.value="some value";




14.body问题


Firefox的body在body标签没有被浏览器完全读入之前就存在;而IE的body则必须在body标签被浏览器完全读入之后才存在.


例如: 
Firefox: 
程序代码
<body> 
<script type="text/javascript"> 
document.body.onclick = function(evt){ 
evt = evt || window.event; 
alert(evt); 
} 
</script> 
</body>


IE&Firefox: 
程序代码
<body>
</body> 
<script type="text/javascript"> 
document.body.onclick = function(evt){ 
evt = evt || window.event; 
alert(evt); 
} 
</script>






15. nodeName 和 tagName 问题


问题:在MF,IE中,所有节点均有 nodeName 值,但 textNode 没有 tagName 值。
解决方法:使用 tagName,但应检测其是否为undefined。


16. url encoding


问题:js中如果书写url就直接写&不要写&例如var url = 'xx.jsp?objectName=xx&objectEvent=xxx';
frm.action = url那么很有可能url不会被正常显示以至于参数没有正确的传到服务器,一般会服务器报错参数没有找到;当然如果是在tpl中例外,因为tpl中符合xml规范,要求&书写为&
一般MF无法识别js中的&


17.children 与 childNodes,removeNode


问题一:在MF中没有   parentElement parement.children   而用 parentNode parentNode.childNodes
问题二:childNodes的下标的含义在IE和MF中不同,MF使用DOM规范,childNodes中会插入空白文本节点。
问题三:一般可以通过node.getElementsByTagName()来回避这个问题。当html中节点缺失时,IE和MF对parentNode的解释不同,例如
    <form>
    <table>
         <input/>
    </table>
    </form>
MF中input.parentNode的值为form, 而IE中input.parentNode的值为空节点
Transformer-Based Attention Networks for Continuous Pixel-Wise Prediction 基于Transformer注意力网络连续像素级与估计 Transformer-Based Attention Networks for Continuous Pixel-Wise Prediction 基于Transformer注意力网络的连续的像素级的 阅读详情

相关推荐

视觉辅助RIS波束追踪:用摄像头“看见”用户,实现毫秒级波束对准

在无线通信领域,波束成形技术是提升高频段信号覆盖与质量的核心手段,其原理是通过调整天线阵列的相位,使信号能量在特定方向相干叠加,形成高增益定向波束。这项技术的价值在于能有效克服高频信号路径损耗大、穿透性差的瓶颈,广泛应用于5G/6G、毫米波通信及室内定位等场景。然而,传统波束追踪依赖信道估计或波束扫描,存在训练开销大、实时性差的问题。本文聚焦于一种创新解决方案:将计算机视觉与可重构智能表面(RIS)相结合。通过摄像头直接感知用户位置,并利用RIS快速重构反射波束方向,实现了近乎零开销、毫秒级延迟的波束追踪,

weixin_33552698的博客 620

多浏览器兼容性问题及解决方案之Javascript篇

 时间: 2009-9-02 - 分类: Html+CSS, JavaScript - 评论: 0 - 阅读: 70 次 CSS跟JavaScript开发中,最令大家头疼的问题就是浏览器兼容性了,虽然很多文章有这方面的文章,但依然让很多开发人员晕头转向,而且也不够全面。这篇文章,将全面收集css和javascript在各种浏览器下的兼容性报告,也期待各位不断补充。由于发觉内容收集越

张峰的专栏 1211

【WorkBuddy】WorkBuddy 智能体快速上手:从零到一的实践指南

文章摘要: 传统自动化脚本难以应对灵活多变的自然语言需求,导致逻辑复杂、维护成本高。智能体(Agent)通过理解语义意图、动态决策和松耦合组件解决了这些问题。WorkBuddy采用声明式配置,通过可视化界面定义意图、实体和对话策略,无需编码即可快速构建智能体。其核心组件包括意图分类、实体提取、对话策略、故事样本和回退机制,适用于客服支持、知识问答等高频场景。通过环境准备(Python/Node.js/Redis)和简单配置,用户可以快速搭建可运行的智能体,显著提升自动化效率。

ruiqideng的博客 1616

记录ie不支持 for of 解决办法

chrome可以正常关闭,ie关闭报错 关闭tags页签报错 源代码: for (const [i, v] of arrayList.entries()) { if (v.val === view.val) { listArray.splice(i, 1) break } } ie报错展示 一段时间的百度搜索,ie 不支持for of ,因此改为for 遍历数组,成功解决问题 for (let i=0;i<listArray.le

lyx1838102537的博客 957

CANoe_Demo_下载以及安装教程

CANoe Demo下载安装流程

Jar_Lee的博客 1万+

13、深入理解 Microsoft 365 的安全与合规概念

本文深入探讨了 Microsoft 365 的安全与合规概念,涵盖文档存储、文件共享、审计、保留、eDiscovery、分类和保护以及网络等多个关键方面。通过合理配置这些功能,组织可以更好地管理和保护其数据资源,满足法规要求,并提升工作效率。文章还提供了最佳实践建议及流程图,帮助读者全面理解 Microsoft 365 的安全架构和管理策略。

k8s6orchestrator的博客 211

IE浏览器兼容方法+几种网页布局

笔记来源:拉勾教育 - 大前端就业集训营 文章内容:学习过程中的笔记、感悟、经验 一、IE浏览器兼容 1、html 兼容写法 html 中可以使用条件注释的方法, 对 IE 进行特殊处理。 条件注释通过注释演变而来: 普通的浏览器认为内部内容为注释, 不进行加载,而指定的浏览器会正常加载代码内容。 <!--[if lte IE 9]> <h2>小于等于IE9的浏览器可以看到</h2> <![endif]--> 注: 书写时, 两个标签前面都要加!,

qq_43477251的博客 1180

如何使用Agent框架来模拟群体智能?

Agent 框架作为人工智能领域的重要工具,可以模拟复杂的群体智能行为,广泛应用于社会科学、经济学和行为学等领域。

334

兼容 FF&IE 的替换鼠标选择文字方法(转载)

<script type="text/javascript"> function changes(obj){ var TextIn=document.getElementById("textin"); if(TextIn.createTextRange){ //ie兼容 TextIn.focus(); document.selection.createRa...

weixin_30314793的博客 90

通信原理 | python调制识别数据及代码

数据集包含了从-20dB 到+18dB 总共 20 个信噪比(步长为 2)下的 11 种调制信号, 包括 AM-DSB、 AM-SSB 和 WBFM 三种模拟调制信号,以及 BPSK、 QPSK、 8PSK、 CPFSK、 GFSK、 PAM4、 QAM16 和 QAM64 八种数字调制信号。其中信号的中心频率为 200KHz,采样频率为 1Msamp/s,且每个信噪比下每种调制信号包含 1000 个信号。其中每个信号包含 IQ 两路数据,且每一路数据都包含有 128 个采样点。

若北辰 1757

杰理SDK入门教程(一):SDK的四种编译方式的使用

杰理SDK提供了四种主要编译方式:1) JL Studio官方IDE,适合初学者;2) VS Code轻量级编辑器,需在SDK根目录打开;3) 命令行/脚本编译,灵活支持自动化;4) Code::Blocks开源IDE。每种方式都有详细操作指南,开发者可根据需求选择,初学者推荐从JL Studio开始熟悉编译流程。环境配置注意事项和编译成功标识均有明确说明,确保开发效率。

qq_42014563的博客 1146

浏览器兼容性部分---FF&IE678

参考博文 http://blog.sina.com.cn/s/blog_6fe8363f0100mq26.html --例句 <script>function test(event) {varevent = event || window.event;//do Something}</script> 转载于:https://www.cnblogs.c...

weixin_30711917的博客 78

【ROS2实体机械臂驱动】rokae xCoreSDK Python测试使用

本文记录了使用xCoreSDK-Python驱动Rokae实体机械臂的测试流程。

机器人梦想家 Bing Lee 1499

如何获得鼠标位置单击后的屏幕位置(FF&IE)?

functionabsolutePoint(element){ varresult={x:element.offsetLeft,y:element.offsetTop}; element=element.offsetParent; while(element){ result.x+=element.offsetLeft...

weixin_30621711的博客 78

计算机控制技术及应用

《计算机控制技术及应用》通过总结作者的科研成果和吸收国内外的先进理论、方法和技术,以计算机控制系统的网络化、开放化、智能化和集成化发展趋势为主线索,主要介绍计算机控制系统的基本概念和计算机控制系统的典型形式,计算机控制系统的数学描述与基本分析方法,以及数字PID控制器、最少拍控制系统、达林算法、状态变量设计法等设计方法及其各种改进算法。重点突出计算机控制系统输入输出通道接口的设计方法和典型控制系统的设计案例与实现方法等。

深度学习工具包 DeepLearningToolbox

深度学习工具包Deprecation notice.-----This toolbox is outdated and no longer maintained.There are much better tools available for deep learning than this toolbox, e.g. [Theano](http://deeplearning.net/software/theano/), [torch](http://torch.ch/) or [tensorflow](http://www.tensorflow.org/)I would suggest you use one of the tools mentioned above rather than use this toolbox.Best, Rasmus.DeepLearnToolbox================A Matlab toolbox for Deep Learning.Deep Learning is a new subfield of machine learning that focuses on learning deep hierarchical models of data.It is inspired by the human brain's apparent deep (layered, hierarchical) architecture.A good overview of the theory of Deep Learning theory is[Learning Deep Architectures for AI](http://www.iro.umontreal.ca/~bengioy/papers/ftml_book.pdf)For a more informal introduction, see the following videos by Geoffrey Hinton and Andrew Ng.* [The Next Generation of Neural Networks](http://www.youtube.com/watch?v=AyzOUbkUf3M) (Hinton, 2007)* [Recent Developments in Deep Learning](http://www.youtube.com/watch?v=VdIURAu1-aU) (Hinton, 2010)* [Unsupervised Feature Learning and Deep Learning](http://www.youtube.com/watch?v=ZmNOAtZIgIk) (Ng, 2011)If you use this toolbox in your research please cite [Prediction as a candidate for learning deep hierarchical models of data](http://www2.imm.dtu.dk/pubdb/views/publication_details.php?id=6284)```@MASTERSTHESIS\{IMM2012-06284, author = "R. B. Palm", title = "Prediction as a candidate for learning deep hierarchical models of data", year = "2012",}```Contact: rasmusbergpalm at gmail dot comDirectories included in the toolbox-----------------------------------`NN/` - A library for Feedforward Backpropagation Neural Networks`CNN/` - A library for Convolutional Neural Networks`DBN/` - A library for Deep Belief Networks`SAE/` - A library for Stacked Auto-Encoders`CAE/` - A library for Convolutional Auto-Encoders`util/` - Utility functions used by the libraries`data/` - Data used by the examples`tests/` - unit tests to verify toolbox is workingFor references on each library check REFS.mdSetup-----1. Download.2. addpath(genpath('DeepLearnToolbox'));Example: Deep Belief Network---------------------```matlabfunction test_example_DBNload mnist_uint8;train_x = double(train_x) / 255;test_x = double(test_x) / 255;train_y = double(train_y);test_y = double(test_y);%% ex1 train a 100 hidden unit RBM and visualize its weightsrand('state',0)dbn.sizes = [100];opts.numepochs = 1;opts.batchsize = 100;opts.momentum = 0;opts.alpha = 1;dbn = dbnsetup(dbn, train_x, opts);dbn = dbntrain(dbn, train_x, opts);figure; visualize(dbn.rbm{1}.W'); % Visualize the RBM weights%% ex2 train a 100-100 hidden unit DBN and use its weights to initialize a NNrand('state',0)%train dbndbn.sizes = [100 100];opts.numepochs = 1;opts.batchsize = 100;opts.momentum = 0;opts.alpha = 1;dbn = dbnsetup(dbn, train_x, opts);dbn = dbntrain(dbn, train_x, opts);%unfold dbn to nnnn = dbnunfoldtonn(dbn, 10);nn.activation_function = 'sigm';%train nnopts.numepochs = 1;opts.batchsize = 100;nn = nntrain(nn, train_x, train_y, opts);[er, bad] = nntest(nn, test_x, test_y);assert(er < 0.10, 'Too big error');```Example: Stacked Auto-Encoders---------------------```matlabfunction test_example_SAEload mnist_uint8;train_x = double(train_x)/255;test_x = double(test_x)/255;train_y = double(train_y);test_y = double(test_y);%% ex1 train a 100 hidden unit SDAE and use it to initialize a FFNN% Setup and train a stacked denoising autoencoder (SDAE)rand('state',0)sae = saesetup([784 100]);sae.ae{1}.activation_function = 'sigm';sae.ae{1}.learningRate = 1;sae.ae{1}.inputZeroMaskedFraction = 0.5;opts.numepochs = 1;opts.batchsize = 100;sae = saetrain(sae, train_x, opts);visualize(sae.ae{1}.W{1}(:,2:end)')% Use the SDAE to initialize a FFNNnn = nnsetup([784 100 10]);nn.activation_function = 'sigm';nn.learningRate = 1;nn.W{1} = sae.ae{1}.W{1};% Train the FFNNopts.numepochs = 1;opts.batchsize = 100;nn = nntrain(nn, train_x, train_y, opts);[er, bad] = nntest(nn, test_x, test_y);assert(er < 0.16, 'Too big error');```Example: Convolutional Neural Nets---------------------```matlabfunction test_example_CNNload mnist_uint8;train_x = double(reshape(train_x',28,28,60000))/255;test_x = double(reshape(test_x',28,28,10000))/255;train_y = double(train_y');test_y = double(test_y');%% ex1 Train a 6c-2s-12c-2s Convolutional neural network %will run 1 epoch in about 200 second and get around 11% error. %With 100 epochs you'll get around 1.2% errorrand('state',0)cnn.layers = { struct('type', 'i') %input layer struct('type', 'c', 'outputmaps', 6, 'kernelsize', 5) %convolution layer struct('type', 's', 'scale', 2) %sub sampling layer struct('type', 'c', 'outputmaps', 12, 'kernelsize', 5) %convolution layer struct('type', 's', 'scale', 2) %subsampling layer};cnn = cnnsetup(cnn, train_x, train_y);opts.alpha = 1;opts.batchsize = 50;opts.numepochs = 1;cnn = cnntrain(cnn, train_x, train_y, opts);[er, bad] = cnntest(cnn, test_x, test_y);%plot mean squared errorfigure; plot(cnn.rL);assert(er<0.12, 'Too big error');```Example: Neural Networks---------------------```matlabfunction test_example_NNload mnist_uint8;train_x = double(train_x) / 255;test_x = double(test_x) / 255;train_y = double(train_y);test_y = double(test_y);% normalize[train_x, mu, sigma] = zscore(train_x);test_x = normalize(test_x, mu, sigma);%% ex1 vanilla neural netrand('state',0)nn = nnsetup([784 100 10]);opts.numepochs = 1; % Number of full sweeps through dataopts.batchsize = 100; % Take a mean gradient step over this many samples[nn, L] = nntrain(nn, train_x, train_y, opts);[er, bad] = nntest(nn, test_x, test_y);assert(er < 0.08, 'Too big error');%% ex2 neural net with L2 weight decayrand('state',0)nn = nnsetup([784 100 10]);nn.weightPenaltyL2 = 1e-4; % L2 weight decayopts.numepochs = 1; % Number of full sweeps through dataopts.batchsize = 100; % Take a mean gradient step over this many samplesnn = nntrain(nn, train_x, train_y, opts);[er, bad] = nntest(nn, test_x, test_y);assert(er < 0.1, 'Too big error');%% ex3 neural net with dropoutrand('state',0)nn = nnsetup([784 100 10]);nn.dropoutFraction = 0.5; % Dropout fraction opts.numepochs = 1; % Number of full sweeps through dataopts.batchsize = 100; % Take a mean gradient step over this many samplesnn = nntrain(nn, train_x, train_y, opts);[er, bad] = nntest(nn, test_x, test_y);assert(er < 0.1, 'Too big error');%% ex4 neural net with sigmoid activation functionrand('state',0)nn = nnsetup([784 100 10]);nn.activation_function = 'sigm'; % Sigmoid activation functionnn.learningRate = 1; % Sigm require a lower learning rateopts.numepochs = 1; % Number of full sweeps through dataopts.batchsize = 100; % Take a mean gradient step over this many samplesnn = nntrain(nn, train_x, train_y, opts);[er, bad] = nntest(nn, test_x, test_y);assert(er < 0.1, 'Too big error');%% ex5 plotting functionalityrand('state',0)nn = nnsetup([784 20 10]);opts.numepochs = 5; % Number of full sweeps through datann.output = 'softmax'; % use softmax outputopts.batchsize = 1000; % Take a mean gradient step over this many samplesopts.plot = 1; % enable plottingnn = nntrain(nn, train_x, train_y, opts);[er, bad] = nntest(nn, test_x, test_y);assert(er < 0.1, 'Too big error');%% ex6 neural net with sigmoid activation and plotting of validation and training error% split training data into training and validation datavx = train_x(1:10000,:);tx = train_x(10001:end,:);vy = train_y(1:10000,:);ty = train_y(10001:end,:);rand('state',0)nn = nnsetup([784 20 10]); nn.output = 'softmax'; % use softmax outputopts.numepochs = 5; % Number of full sweeps through dataopts.batchsize = 1000; % Take a mean gradient step over this many samplesopts.plot = 1; % enable plottingnn = nntrain(nn, tx, ty, opts, vx, vy); % nntrain takes validation set as last two arguments (optionally)[er, bad] = nntest(nn, test_x, test_y);assert(er < 0.1, 'Too big error');```[![Bitdeli Badge](https://d2weczhvl823v0.cloudfront.net/rasmusbergpalm/deeplearntoolbox/trend.png)](https://bitdeli.com/free "Bitdeli Badge")

IE和火狐的一些区别------解决兼容问题

最好都是能使用w3c的标准l来进行代码编写 &lt;!-- 这是ie方法 --&gt; 这是ie 和ff 页面加载完后执行的事件 innerText在ff里没有这个属性,对应的属性是textContent 下面是判断是否是IE if(navigator.appName.indexOf("Explorer") &gt; -1) document.getElementById("xx")...

iteye_3191的博客 81

霍尼韦尔SoftMaster使用说明

霍尼韦尔SoftMaster使用说明

js在IE和火狐下的一些区别

<br />最好都是能使用w3c的标准l来进行代码编写<br /><!-- 这是ie方法 --><br /><script defer type="text/javascript"><br />    subDate();<br /></script><br /><script type="text/javascript"><br />    // 这是ff方法<br />    if (document.addEventListener)<br />        document.addEventLis

朩冰雲的专栏 1541

文档:亲测可用解决vnc灰屏,黑屏,鼠标大黑叉情况

主要解决vnc-viewer灰屏,黑屏,鼠标大黑叉等现象,详细见文档。

jquery ajax.set,jQuery的AJAX响应集合cookie头(jQuery AJAX Response Set Co

我有使用AA REST API的项目。 在这里,当Isend的登录请求,他们送我方含一些数据的响应作为JSON。 随着在响应头Access-Control-Allow-Origin:*Connection:keep-aliveContent-Length:239Content-Type:application/jsonDate:Fri, 19 Oct 2012 06:28:12 GMTServ...

weixin_39604280的博客 732

js for in 在各浏览器差异

js for in 在各浏览器差异 var obj = {  2   2:"2",  3   40:"40",  4   15:"15",  5 };  6 for (var k in obj) {  7     console.log(k);   8 };   ie6/7/8/firefox/safari 2 40 15 ie9/chrome10/opera11 2

程序员写的技术 FAQ 和杂文 4393

angular4 如何让IE浏览器正常工作,提示_for-of.js错误

进行angulajs4踩坑阶段,遇到ie浏览器打开页面什么也没有显示。ie11 都没有显示,控制台报_for-of.js错误。。 第一步 找到项目 src 目录下 polyfill.ts 文件,将注释部分,取消注释 . 第二步 打开注释后的代码 ...

qq_34648151的博客 738

ie11 一个非常严重的兼容问题 for of 不支持

需要改成: for(let i=0;i<this.showImgs.length;i++) { let iii=this.showImgs[i]; }

QQ2856639881的专栏 2732

简述js中 for in 与 for of 区别

for in是ES5标准,遍历key. for of是ES6标准,遍历value.for (var key in arr){ console.log(arr[key]); }for (var value of arr){ console.log(value); }

ForMyQianDuan的博客 1万+

for ie无效 in js_javascript总for of和for in的区别?

先说结论:推荐在循环对象属性的时候,使用for...in,在遍历数组的时候的时候使用for...of。for...in循环出的是key,for...of循环出的是value注意,for...of是ES6新引入的特性。修复了ES5引入的for...in的不足for...of不能循环普通的对象,需要通过和Object.keys()搭配使用假设我们要遍历一个数组的valuelet aArray = ['...

weixin_29865183的博客 281

for( in ) IE下兼容问题

在JS 中 for in 常用于遍历对象的可枚举属性,包括原型链上的属性。然而for_in在IE < 9下可能会出现问题。   for_in要出现问题必须满足两个条件:   1:IE < 9;   2:某些不可枚举的属性被重写。   在js中当一些不可枚举的属性比如toString被重写后,它会变成可枚举。然而当你碰上了IE<9,这些被重写的属性依旧是...

639

一行代码轻松搞定各种IE兼容问题,IE6,IE7,IE8,IE9,IE10

在网站开发中不免因为各种兼容问题苦恼,针对兼容问题,其实IE给出了解决方案Google也给出了解决方案百度也应用了这种方案去解决IE的兼容问题? 百度源代码如下: 1 2 html xmlns=http://www.w3.org/1999/xhtml xmlns:bd=http://www.baidu.com/2010/xbdml> 3 head> 4 m

小诺 7万+

js中for in与for of之间的差异

先说结论: 推荐在循环对象属性的时候,使用for…in,在遍历数组的时候的时候使用for…of。 for…in循环出的是key,for…of循环出的是value 注意,for…of是ES6新引入的特性。修复了ES5引入的for…in的不足 for…of不能循环普通的对象,需要通过和Object.keys()搭配使用 假设我们要遍历一个数组的valuelet aArray = [‘a’,1...

u013594477的专栏 5662
上一篇: javascript创建对象的几种方式
下一篇: 谈谈CSS浏览器的兼容问题。集锦
jiestyle21
博客等级 码龄17年 36粉丝 48原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值