草庐IT

IE兼容处理

全部标签

javascript - 避免 IE 抛出 : Error: 'console' is undefined 的常见习语

我已经安装了firebug并编写了所有这些日志语句。我已经在IE中测试了我的应用程序,当然我遇到了“未定义”错误。避免这种情况的常用习语是什么。我真的不想评论我文件中的所有console.log语句,也不想mock它们。我不知道该怎么做。 最佳答案 我通常会像这样制作一个包装函数:functionlog(obj){if(window.console&&console.log)console.log(obj);}或者您可以在脚本文件/元素的开头执行类似的操作:if(!window.console){window.console={lo

javascript - 模糊事件不会在 IE7 和 IE6 中触发

我有一个下拉菜单,在其中单击div并显示列表。在聚焦时我应该隐藏列表(即当用户单击或聚焦于其他元素而不是鼠标移出时)。因此,我明显的选择是onblur。现在JavaScript似乎可以在Firefox中运行,但不能在IE中运行,那是因为我的div有一个指定了高度和宽度的子div。这在测试文件中是可重现的。我正在使用jQuery。这是InternetExplorer中的已知问题吗?解决方法是什么?ExploringIE/**ExploringIE**/.selected_optiondiv{height:18px;}$().ready(function(){$('.selected_op

javascript - 无法在 IE 中的选择选项上使用 onmouseover 事件

更新代码:functiongetElements(){varx=document.getElementsByTagName("option");varel=document.getElementById('selectDept');el.onmouseover=function(myevent){//event=event||window.event.srcElement;if(myevent&&myevent.target){if(myevent.target.tagName.toLowerCase()=='option'){alert(myevent.target.innerHTM

javascript - 在事件处理程序中访问事件对象

当我尝试使用以下参数附加事件处理函数时:myhandle.onclick=myfunction(param1,param2);functionmyfunction(param1,param2){}现在我想在我的处理函数中访问事件对象。网上有一种发送事件对象的方法,比如:myhandle.onclick=myfunction(event,param1,param2);但是当我测试它时,它给出了未定义的事件对象。我知道库使这些事情变得简单,但我正在寻找原生JS选项。 最佳答案 myhandle.onclick=myfunction(pa

javascript - 在没有 SWFObject 的 IE6 中使用 jQuery 嵌入 YouTube 视频

这是我的代码:$(document).ready(function(){$("#video").html('');});它适用于Firefox和Chrome,但在IE6中有些地方不太正确。遗憾的是,项目要求之一是支持此浏览器,因此即使它在IE7中工作,我也需要解决这个问题。我知道有SWFObject,但我不想使用它(我们已经加载了一堆JS文件,我们不想要更多)。即使这样也行不通:document.write('');IE6似乎忽略了标签,这是它嵌入的代码。有解决办法吗?谢谢。 最佳答案 您寻找的解决方法将以您编写swfobject的

javascript - 如何将 JavaScript onClick 处理程序添加到嵌入式 html 对象?

我正在尝试将onClick处理程序添加到嵌入式对象。处理程序需要执行一个位于外部.js文件中的函数,该文件通过链接到当前的html文件。.由于函数位于其他位置,我是否需要以不同方式引用该函数?这是目前的代码(不起作用,但也不会产生任何错误): 最佳答案 您必须在svg内部实现onclick,并使用svg内部的javascript将其链接到外部JavaScript函数。有关示例,请参阅SVGwiki。更新:显然SVGwiki已经不存在了。毫不奇怪,我现在可以(快速)找到的最佳引用资料都在StackOverflow本身。Thisansw

javascript - 哪些版本的 IE 使用标准事件模型?

我用谷歌搜索过,但找不到满意的答案。哪些版本的InternetExplorer(如果有)实现了W3CDOM2级事件模型? 最佳答案 IE9应该是第一个在其专有模型之外添加W3C事件模型的IE版本accordingtoWikipedia.进一步阅读:IEBlog:DOMLevel3EventssupportinIE9(2010年3月)RobertNyman:InternetExplorer8–FixEventHandling,OrDon’tReleaseIt(2008年11月) 关于jav

javascript - 使用 Visual Studio 2010 时禁用 IE9 Javascript 调试器

在IE9下使用VisualStudio时,有没有办法禁用javascript调试? 最佳答案 如果单击工具(Alt+X)按钮,则单击Internet选项菜单项。在Advanced选项卡和Browsing类别中:检查禁用脚本调试(InternetExplorer)这应该禁用Javascript调试器 关于javascript-使用VisualStudio2010时禁用IE9Javascript调试器,我们在StackOverflow上找到一个类似的问题: htt

javascript - 在 jQuery 中绑定(bind)事件后,如何获取对事件处理函数的引用?

如果我附加一个点击事件处理程序:$(".selector").bind("click",function(){//somehandlerfunction});如何获得对该函数的引用?这不起作用:varrefToFunc=$(".selector").bind("click");typeofrefToFunc==="object";//Iwantthefunction我认为bind("eventname")在那种情况下只返回jQuery对象而不是事件处理函数。它必须存储在某个地方。 最佳答案 非常有趣的问题。您可以像这样检索它:var

javascript - 如何在 IE8 中生成具有特定键码的 keyup 事件?

我需要使用nativeDOM函数(无jQuery)在IE8中生成keyup事件。以下代码生成、触发和接收事件,但keyCode始终为0。如何正确传递keyCode?varme=document.getElementById("me");me.attachEvent("onkeyup",function(e){alert(e.keyCode);//=>0});document.getElementById("me").fireEvent('onkeyup',13); 最佳答案 想通了。解决方案是创建一个事件对象,分配键码,然后从节点触