兼容IE和FF的js脚本代码小结(比较常用)_javascript技巧
/*以下以 IE 代替 Internet Explorer,以 MF/FF 代替 Mozzila Firefox */
//window.event
IE:有window.event对象
FF:没有window.event对象。可以通过给函数的参数传递event对象。如onmousemove=doMouseMove(event)
解决方法:var event = event || window.event;
example:
<script> <BR>function test(event) { <BR>var event = event || window.event; <BR>//do Something <BR>} <BR></script>
//鼠标当前坐标
IE:event.x和event.y。
FF:event.pageX和event.pageY。
通用:两者都有event.clientX和event.clientY属性。
//鼠标当前坐标(加上滚动条滚过的距离)
IE:event.offsetX和event.offsetY。
FF:event.layerX和event.layerY。
解决方法:
<script> <BR>function test(event) { <BR>var event = event || window.event; <BR>//or var event = event ? event : window.event;//这2中都可以,也可以用if else(这简写) <BR>var x = event.offsetX || event.layerX; <BR>var y = event.offsetY || event.layerY; <BR>//do Something <BR>} <BR></script>
/**其他的兼容的解决方法类似,不再一一举例**/
//event.srcElement问题
说明:IE下,event对象有srcElement属性,但是没有target属性;Firefox下,even对象有target属性,
但是没有srcElement属性.
解决方法:使用obj(obj = event.srcElement ? event.srcElement : event.target;)
来代替IE下的event.srcElement或者
Firefox下的event.target. 请同时注意event的兼容性问题。
//event.toElement问题
问题:
IE下,even对象有srcElement属性,但是没有target属性;
Firefox下,even对象有target属性,但是没有srcElement属性
解决方法:
var target = e.relatedTarget || e.toElement;
//标签的x和y的坐标位置:style.posLeft 和 style.posTop
IE:有。
FF:没有。
通用:object.offsetLeft 和 object.offsetTop。
//窗体的高度和宽度
IE:document.body.offsetWidth和document.body.offsetHeight。注意:此时页面一定要有body标签。
FF:window.innerWidth和window.innerHegiht,
以及document.documentElement.clientWidth和document.documentElement.clientHeight。
通用:document.body.clientWidth和document.body.clientHeight。
//添加事件
IE:element.attachEvent("onclick", function);。
FF:element.addEventListener("click", function, true)。
通 用:element.onclick=function。虽然都可以使用onclick事件,但是onclick和上面两种方法的效果是不一样的,
onclick 只有执行一个过程,而attachEvent和addEventListener执行的是一个过程列表,也就是多个过程。
例如:element.attachEvent("onclick", func1);
element.attachEvent("onclick", func2)这样func1和func2都会被执行。
//标签的自定义属性
IE:如果给标签div1定义了一个属性value,可以div1.value和div1["value"]取得该值。
FF:不能用div1.value和div1["value"]取。
通用:div1.getAttribute("value")。
//document.form.item 问题
IE:现有问题:现有代码中存在许多 document.formName.item("itemName") 这样的语句,不能在 MF 下运行
FF/IE: document.formName.elements["elementName"]
//集合/数组类对象问题
(1)现有问题:
现有代码中许多集合类对象取用时使用 (),IE 能接受,MF 不能。
(2)解决方法:
改用 [] 作为下标运算。如:document.forms("formName") 改为 document.forms["formName"]。
又如:document.getElementsByName("inputName")(1) 改为 document.getElementsByName("inputName")[1]
//HTML 对象的 id 作为对象名的问题
(1)现有问题
在 IE 中,HTML 对象的 ID 可以作为 document 的下属对象变量名直接使用。在 MF 中不能。
(2)解决方法
用 getElementById("idName") 代替 idName 作为对象变量使用
//用idName字符串取得对象的问题
(1)现有问题
在IE中,利用 eval(idName) 可以取得 id 为 idName 的 HTML 对象,在MF 中不能。
(2)解决方法
用 getElementById(idName) 代替 eval(idName)。
//变量名与某 HTML 对象 id 相同的问题
(1)现有问题
在 MF 中,因为对象 id 不作为 HTML 对象的名称,所以可以使用与 HTML 对象 id 相同的变量名,IE 中不能。
(2)解决方法
在声明变量时,一律加上 var ,以避免歧义,这样在 IE 中亦可正常运行。
此外,最好不要取与 HTML 对象 id 相同的变量名,以减少错误。
//document.getElementsByName() 和 document.all[name] 的问题
现有问题:在 IE 中,getElementsByName()、document.all[name] 均不能用来取得 div 元素
(是否还有其它不能取的元素还不知道)。
//document.all
Firefox可以兼容document.all, 但会生成一条警告。可以用getElementById("*")
或者 getElementByTagName("*")来代替
不过对于document.all.length等属性,则完全不兼容
//input.type属性问题
说明:IE下input.type属性为只读;但是Firefox下input.type属性为读写
//window.location.href问题
说明:IE或者Firefox2.0.x下,可以使用window.location或window.location.href;Firefox1.5.x下,
只能使用window.location
解决方法:使用window.location来代替window.location.href
//模态和非模态窗口问题
说明:IE下,可以通过showModalDialog和showModelessDialog打开模态和非模态窗口;Firefox下则不能
解决方法:直接使用window.open(pageURL,name,parameters)方式打开新窗口。
如果需要将子窗口中的参数传递回父窗口,可以在子窗口中使用window.opener来访问父窗口.
例如:var parWin = window.opener; parWin.document.getElementById("Aqing").value = "Aqing";
//frame问题
以下面的frame为例:
(1)访问frame对象:
IE:使用window.frameId或者window.frameName来访问这个frame对象. frameId和frameName可以同名。
FF:只能使用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中的参数传回父窗口(注意不是opener,而是parent frame),可以在frme中使用parent来访问父窗口。
例如:window.parent.document.form1.filename.value="Aqing";
//body问题
Firefox的body在body标签没有被浏览器完全读入之前就存在;而IE的body则必须在body标签被浏览器完全读入之后才存在
//事件委托方法
IE:document.body.onload = inject; //Function inject()在这之前已被实现
FF:document.body.onload = inject();
//firefox与IE的父元素(parentElement)的区别
IE:obj.parentElement
FF:obj.parentNode
解决方法: 因为FF与IE都支持DOM,因此使用obj.parentNode是不错选择
//innerText在IE中能正常工作,但是innerText在FireFox中却不行. 需用textContent
//FireFox中设置HTML标签的style时,所有位置性和字体尺寸的值必须后跟px。这个ie也是支持的
//父节点、子节点和删除节点
IE:parentElement、parement.children,element.romoveNode(true)。
FF:parentNode、parentNode.childNodes,node.parentNode.removeChild(node)。
//对select的options集合操作
枚举元素除了[]外,SelectName.options.item()也是可以的, 另外SelectName.options.length,
SelectName.options.add/remove都可以在两种浏览器上使用。
注意在add后赋值元素,否则会失败
动态删除select中的所有options:
document.getElementById("ddlResourceType").options.length=0;
动态删除select中的某一项option:
document.getElementById("ddlResourceType").options.remove(indx);
动态添加select中的项option:
document.getElementById("ddlResourceType").options.add(new Option(text,value));
IE FF 动态删除通用方法:
document.getElementById("ddlResourceType").options[indx] = null;
//捕获事件
问题:
FF没有setCapture()、releaseCapture()方法
解决方法:
IE:
obj.setCapture();
obj.releaseCapture();
FF:
window.captureEvents(Event.MOUSEMOVE|Event.MOUSEUP);
window.releaseEvents(Event.MOUSEMOVE|Event.MOUSEUP);
if (!window.captureEvents) {
o.setCapture();
}else {
window.captureEvents(Event.MOUSEMOVE|Event.MOUSEUP);
}
if (!window.captureEvents) {
o.releaseCapture();
}else {
window.releaseEvents(Event.MOUSEMOVE|Event.MOUSEUP);
}
//禁止选取网页内容
问题:
FF需要用CSS禁止,IE用JS禁止
解决方法:
IE: obj.onselectstart = function() {return false;}
FF: -moz-user-select:none;
//画图
IE:VML。
FF:SVG。
//CSS:透明
IE:filter:progid:DXImageTransform.Microsoft.Alpha(style=0,opacity=60)。
FF:opacity:0.6。
//CSS:圆角
IE:不支持圆角。
FF:-moz-border-radius:4px,或者-moz-border-radius-topleft:4px;-moz-border-radius-topright:4px;
-moz-border-radius-bottomleft:4px;-moz-border-radius- bottomright:4px;。
//CSS:双线凹凸边框
IE:border:2px outset;。
FF:-moz- border-top-colors: #d4d0c8 white;-moz-border-left-colors: #d4d0c8 white;
-moz-border-right-colors:#404040 #808080;-moz-border-bottom-colors:#404040 #808080;。

Heiße KI -Werkzeuge

Undresser.AI Undress
KI-gestützte App zum Erstellen realistischer Aktfotos

AI Clothes Remover
Online-KI-Tool zum Entfernen von Kleidung aus Fotos.

Undress AI Tool
Ausziehbilder kostenlos

Clothoff.io
KI-Kleiderentferner

AI Hentai Generator
Erstellen Sie kostenlos Ai Hentai.

Heißer Artikel

Heiße Werkzeuge

Notepad++7.3.1
Einfach zu bedienender und kostenloser Code-Editor

SublimeText3 chinesische Version
Chinesische Version, sehr einfach zu bedienen

Senden Sie Studio 13.0.1
Leistungsstarke integrierte PHP-Entwicklungsumgebung

Dreamweaver CS6
Visuelle Webentwicklungstools

SublimeText3 Mac-Version
Codebearbeitungssoftware auf Gottesniveau (SublimeText3)

Heiße Themen

Viele Benutzer werden beim Betrieb des Computers auf Abstürze oder Bluescreens stoßen. Zu diesem Zeitpunkt müssen wir die stabilste Win10-Version für den Betrieb finden. Insgesamt ist sie sehr einfach zu bedienen und kann Ihren täglichen Gebrauch reibungsloser gestalten. Die stabilste Win10-Version in der Geschichte. 1. Win10-Originalsystem. Hier können Benutzer einfache Vorgänge verwenden. Das System verfügt über eine starke Stabilität, Sicherheit und Kompatibilität. Benutzer können die Schritte befolgen, um die perfekte Maschine zu erhalten gestrafft Die Version von win10 wurde strikt gestrafft und viele unnötige Funktionen und Dienste wurden gelöscht. Nach der Optimierung hat das System eine geringere CPU- und Speicherauslastung und läuft schneller. 3. Win10 Lite Edition 1909 ist auf mehreren Computern mit unterschiedlichen Hardwaremodellen installiert.

Es ist kein Geheimnis, dass der Internet Explorer schon lange in Ungnade gefallen ist, aber mit der Einführung von Windows 11 kommt die Realität. Anstatt in Zukunft manchmal den IE zu ersetzen, ist Edge jetzt der Standardbrowser im neuesten Betriebssystem von Microsoft. Vorerst können Sie den Internet Explorer noch in Windows 11 aktivieren. Allerdings hat IE11 (die neueste Version) bereits ein offizielles Ruhestandsdatum, nämlich den 15. Juni 2022, und die Uhr tickt. Vor diesem Hintergrund ist Ihnen vielleicht aufgefallen, dass Internet Explorer manchmal Edge öffnet, und es gefällt Ihnen möglicherweise nicht. Warum passiert das also? existieren

Immer mehr Benutzer beginnen mit der Aktualisierung des Win11-Systems. Da jeder Benutzer unterschiedliche Nutzungsgewohnheiten hat, verwenden viele Benutzer immer noch den IE11-Browser. Was soll ich also tun, wenn das Win11-System den IE-Browser nicht verwenden kann? Unterstützt Windows11 immer noch ie11? Werfen wir einen Blick auf die Lösung. Lösung des Problems, dass Win11 den ie11-Browser nicht verwenden kann 1. Klicken Sie zunächst mit der rechten Maustaste auf das Startmenü und wählen Sie „Eingabeaufforderung (Administrator)“, um es zu öffnen. 2. Geben Sie nach dem Öffnen direkt „Netshwinsockreset“ ein und drücken Sie zur Bestätigung die Eingabetaste. 3. Geben Sie nach der Bestätigung „netshadvfirewallreset&rdqu“ ein

Switch2 ist ein neues Modell, das Nintendo auf der Gamescom 2023 angekündigt hat. Einige Spieler sind besorgt darüber, ob es Kompatibilitätsprobleme zwischen dem neuen Modell und der Vorgängerversion der Kassette geben wird. Ist Switch2 mit der Switch-Kassette kompatibel? Antwort: Switch2 ist nicht mit der Switch-Kassette kompatibel. Einführung von Switch 2-Kassetten Nach Angaben des Produktionskettenunternehmens von Nintendo kann die Switch 2 64-GB-Kassetten verwenden. Da es eine bessere Leistung bietet und mehr 3A-Spielmeisterwerke unterstützt, ist eine größere Kassettenkapazität erforderlich. Denn viele Spielewerke müssen kastriert und komprimiert werden, bevor sie in eine Spielekassette gestopft werden können. Darüber hinaus neigen Switch-Kassetten dazu, Spielinhalte zu kopieren. Ersetzen Sie sie daher durch neue Kassetten.

Wie wir alle wissen, besteht ein Hauptmerkmal von Win11 darin, dass es mit dem Android-Subsystem ausgestattet ist, das es uns ermöglicht, Android-Software zu installieren, ohne einen Emulator zu verwenden. Allerdings gibt es auch das Problem, dass Win11-Android-Anwendungen hängen bleiben ? Ist Win11 nicht mit dynamischen Hintergrundbildern kompatibel? Antwort: Win11 ist mit dynamischen Hintergrundbildern kompatibel. Wenn es nicht verwendet werden kann, liegt das möglicherweise daran, dass die Software- oder Systemversion im Rückstand ist. Wenn es gerade aktualisiert wurde, wird es möglicherweise vom Systemhintergrund verdeckt. 1. Wenn die System- oder Softwareversion im Rückstand ist, aktualisieren Sie einfach das System und die Software für dynamische Hintergrundbilder. 2. Wenn es vom Systemhintergrund verdeckt wird, können Sie versuchen, „Einstellungen“ zu öffnen. 3. Geben Sie dann unter „Personalisierung“ die Einstellungen für „Hintergrund“ ein. 4. Ändern Sie dann den personalisierten Hintergrund in „Bild“. 5. Nachdem die Änderung abgeschlossen ist, können Sie das dynamische Hintergrundbild normal einstellen

In letzter Zeit haben viele Win10-Benutzer festgestellt, dass ihr IE-Browser bei der Verwendung von Computerbrowsern immer automatisch zum Edge-Browser springt. Wie kann man also den automatischen Sprung zum Edge beim Öffnen des IE in Win10 deaktivieren? Lassen Sie diese Website den Benutzern sorgfältig vorstellen, wie sie beim Öffnen des IE in Win10 automatisch zum Rand springen und schließen. 1. Wir melden uns beim Edge-Browser an, klicken auf ... in der oberen rechten Ecke und suchen nach der Dropdown-Einstellungsoption. 2. Nachdem wir die Einstellungen eingegeben haben, klicken Sie in der linken Spalte auf Standardbrowser. 3. Abschließend aktivieren wir in der Kompatibilität das Kontrollkästchen, um ein erneutes Laden der Website im IE-Modus zu verhindern, und starten den IE-Browser neu.

Der 15. Juni 2022 ist der Tag, an dem Microsoft den Support für Internet Explorer 11 (IE11) beendet und sein Kapitel über Legacy-Browser abschließt. Das Unternehmen erinnert Nutzer bereits seit Längerem an dieses End-of-Life-Datum und fordert sie dazu auf, einen Umstieg auf Microsoft Edge zu planen. Microsoft bündelt IE11 mit Windows 8.1 als modernen Standard-Webbrowser für Windows. Obwohl er nie die (aktuellen) Höhen von Chrome erreichte, war er 2014 nach IE8 der am zweithäufigsten verwendete Desktop-Browser. Natürlich mit 20

Lösungen für IE-Verknüpfungen, die nicht gelöscht werden können: 1. Berechtigungsprobleme; 3. Softwarekonflikte; 6. IE-Probleme; 9. Überprüfen Sie den Zielpfad der Verknüpfung. 10. Berücksichtigen Sie andere Faktoren. 11. Wenden Sie sich an Fachleute. Detaillierte Einführung: 1. Klicken Sie mit der rechten Maustaste auf die Verknüpfung, wählen Sie „Eigenschaften“ und stellen Sie sicher, dass Sie über ausreichende Berechtigungen zum Löschen der Verknüpfung verfügen. Wenn nicht, können Sie versuchen, die Verknüpfung auszuführen usw .
